Intent 跳转 Activity 用法
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" /> 必须要有。