1 一、不同应用中的 Activity 传递
2 Intent tIntent=new Intent();
3 ComponentName tComponentName=new ComponentName("com.oradt.ecard.globalsearch", "com.oradt.ecard.globalsearch.GlobalActivity");
4 tIntent.setComponent(tComponentName);
5 tIntent.setAction("android.intent.action.MAIN");
6 tIntent.putExtra("id", mTimeRing.getId());
7 mContext.startActivity(tIntent);
8 1.注解:
9
10 1.com.oradt.ecard.globalsearch 是要跳转应用的包名,即 AndroidManifest.xml 中的 package
11
12 <manifest xmlns:android="http://schemas.android.com/apk/res/android"
13 package="com.oradt.ecard.globalsearch"
14
15 2.com.oradt.ecard.globalsearch.GlobalActivity 是要跳转的 Activity 名+全包名
16 <activity
17 android:name=".GlobalActivity"
18 android:label="@string/app_name" >
19 <intent-filter>
20 <action android:name="android.intent.action.MAIN" />
21
22 <category android:name="android.intent.category.LAUNCHER" />
23 </intent-filter>
24 </activity>
25 就是 android:name 中注册的名字
26
27 2.在第 2 个 Activity 中接收数据与平时的一样
28 Intent tIntent = getIntent();
29 int id = tIntent.getIntExtra("id", -1);
30
31 if (id > -1) {
32
33 TextView tId = (TextView) this.findViewById(R.id.tvId);
34 tId.setText(""+id);
35 }
36
37 3.如果第 2 个 Activity 不是主 Activity,需要设置<intent-filter>
38 <activity android:name="com.oradt.ecard.globalsearch.ContnActivity" >
39 <intent-filter>
40 <action android:name="com.oradt.action.PLAYER" />
41
42 <category android:name="android.intent.category.DEFAULT" />
43 </intent-filter>
44 </activity>
45
46 其中 android.intent.category.DEFAULT 不是必须的(亲自实验),但 com.oradt.action.PLAYER 是必须的。并且他与 tIntent.setAction("android.intent.action.MAIN");中的内容是对应的。
47 Intent tIntent = new Intent();
48 ComponentName tComponentName=new ComponentName("com.oradt.ecard.globalsearch", "com.oradt.ecard.globalsearch.ContnActivity");
49 tIntent.setComponent(tComponentName);
50 tIntent.setAction("com.oradt.action.PLAYER");
51 mContext.startActivity(tIntent);
52
53 经实验,tIntent.setAction("com.oradt.action.PLAYER"); 可不加,但<action android:name="com.oradt.action.PLAYER" /> 必须要有。