<activity android:name=".MainActivity" android:taskAffinity=".cwp.affinity" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
<strong>Application Activity taskAffinity allowTaskReparenting </strong>
application1 Activity1 com.winuxxan.affinity true
application2 Activity2 com.winuxxan affinity false
<application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".Activity1" android:taskAffinity="com.winuxxan.task" android:label="@string/app_name"> </activity> <activity android:name=".Activity2"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application>
public class Activity2 extends Activity {
private static final String TAG = "Activity2";
@Override protected void
onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main2); }
@Override public boolean onTouchEvent(MotionEvent event) {
Intent intent = new Intent(this, Activity1.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); startActivity(intent);
return super.onTouchEvent(event);
}
}<application android:icon="@drawable/icon"
android:label="@string/app_name">
<activity
android:name=".MyActivity"
android:taskAffinity="com.winuxxan.task"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>我们首先启动MyActivity,然后按Home键,返回到桌面,然后打开Activity2,点击Activity2,进入Activity1。然后按返回键。我们发现,我们进入Activity的顺序为Activity2->Activity1,而返回时顺序为 Activity1->MyActivity。这就说明了一个问题,Activity1在启动时,重新宿主到了MyActivity所在的Task 中去了。
原文:http://blog.csdn.net/qq_25184739/article/details/51356108