Android可以避免onCreate()被调用吗?

时间:2010-09-01 12:06:36

标签: android stack android-activity

我有两个应用程序App-1& APP-2。 App-2有一个按钮,可以启动App-1。

需要表现得如下: -

  1. 用户启动App-1(使用启动器)&活动A,B& C开始&活动C位于活动堆栈的顶部。
  2. 请注意,App-1的入口点是活动A.
  3. 用户按下主页键。
  4. 用户然后启动应用程序App-2。用户选择App-2中的按钮启动App-1。
  5. App-2中按钮的
  6. onClick()具有以下代码: -

    Intent i = new Intent();      i.setAction( “com.x.y.z”); //解析为App-1的活动A.      i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);      i.putExtra(“x”,“y”);      startActivity(ⅰ);

  7. 在步骤4之后,调用活动A的onCreate(),这很正常。但我希望Android能够将整个活动堆栈带到前台,因为App-1正在运行& Android还没有杀死它。(如果我在第2步之后启动了App-1,这是相同的行为。)

    我希望向用户显示活动C.

    如果有可能,请帮助我。

    我尝试将活动A作为singleTask& amp; singleInstance。如果我这样做,只有活动A被带到前台,这不是我想要的。

    App-1清单的片段如下所示: -

    <activity android:name=".aa.a"
    
             android:configChanges="orientation|keyboardHidden|locale"
             android:label="@string/app_name"
             android:theme="@android:style/Theme.NoDisplay"
             >
                <intent-filter>
                 <action android:name="android.intent.action.MAIN" />
                    <category android:name="android.intent.category.LAUNCHER" />
                    <category android:name="android.intent.category.DEFAULT" />
               </intent-filter>
               <intent-filter>
                     <action android:name="com.x.y.z" />
                     <category android:name="android.intent.category.LAUNCHER" />
                     <category android:name="android.intent.category.DEFAULT" />
                 </intent-filter>
    
    </activity>
    

1 个答案:

答案 0 :(得分:1)

FLAG_ACTIVITY_NEW_TASK通知Android开始新任务;新任务不包含B&amp; C,所以不要指望它们中的任何一个被显示出来。 此外,FLAG_ACTIVITY_CLEAR_TOP删除B&amp; C,与你想要的完全相反。

尝试删除这两个标志。