在一个应用程序中切换任务

时间:2011-03-01 12:16:57

标签: android

我想重现这里显示的情况: http://developer.android.com/guide/topics/fundamentals/tasks-and-back-stack.html#TaskLaunchModes 我使用活动X0启动应用程序,然后将活动A1作为新活动启动 任务和开放活动A2作为单一任务。接下来我打开活动B1作为 新任务,然后我开始活动B2,然后我想切换到 活动A2。在后面我会去A1,然后是B2,B1,最后到X0。

这是我的清单:

     <application
           android:icon="@drawable/icon"
           android:label="@string/app_name">
           <activity
                   android:name="X0"
                   android:label="@string/app_name">
                   <intent-filter>
                           <action
                                   android:name="android.intent.action.MAIN" />
                           <category
                                   android:name="android.intent.category.LAUNCHER" />
                   </intent-filter>
           </activity>
           <activity
                   android:name="A1"
                   android:allowTaskReparenting="false"
                   android:taskAffinity="@string/task_A"
                   android:label="@string/app_name">
           </activity>
           <activity
                   android:name="A2"
                   android:allowTaskReparenting="false"
                   android:taskAffinity="@string/task_A"
                   android:launchMode="singleTop"
                   android:label="@string/app_name">
           </activity>
           <activity
                   android:name="B1"
                   android:allowTaskReparenting="false"
                   android:taskAffinity="@string/task_B"
                   android:label="@string/app_name">
           </activity>
           <activity
                   android:name="B2"
                   android:allowTaskReparenting="false"
                   android:taskAffinity="@string/task_B"
                   android:launchMode="singleTask"
                   android:label="@string/app_name">
           </activity>
   </application>

起初我没有任何allowTaskReparenting和taskAffinity,我开始了 试验这些设置。

这是我的活动代码,活动之间也是如此:

   ((TextView) findViewById(R.id.title)).setText("X0" + getTaskId() + isTaskRoot()); //some debugging

   findViewById(R.id.a1).setOnClickListener(new OnClickListener() {

                   @Override
                   public void onClick(View v) {
                           Intent intent = new Intent();
                           intent.setClass(getApplicationContext(), A1.class);
                           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                           intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                           startActivity(intent);
                   }
           });
           findViewById(R.id.a2).setOnClickListener(new OnClickListener() {

                   @Override
                   public void onClick(View v) {
                           Intent intent = new Intent();
                           intent.setClass(getApplicationContext(), A2.class);
                           startActivity(intent);
                   }
           });
           findViewById(R.id.b1).setOnClickListener(new OnClickListener() {

                   @Override
                   public void onClick(View v) {
                           Intent intent = new Intent();
                           intent.setClass(getApplicationContext(), B1.class);
                           intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                           intent.addFlags(Intent.FLAG_ACTIVITY_MULTIPLE_TASK);
                           startActivity(intent);
                   }
           });
           findViewById(R.id.b2).setOnClickListener(new OnClickListener() {

                   @Override
                   public void onClick(View v) {
                           Intent intent = new Intent();
                           intent.setClass(getApplicationContext(), B2.class);
                           startActivity(intent);
                   }
           });

现在我点击A1,A2,B1,B2,A2,A2应该来自任务A, 但它会在堆栈B中打开新的活动A2。

是否可以在我创建的任务之间切换?

0 个答案:

没有答案