我有两个应用程序App-1 & App-2。 App-2有一个启动App-1的按钮。Android可以避免onCreate()被调用吗?
需要的是为具有如同以下内容: -
- 用户启动的App-1(使用发射器)&活动A,B & C被启动&活性C在活动堆栈的顶部。
- 请注意,App-1的入口点是活动A.
- 用户按下主页键。
- 用户然后启动应用程序App-2。用户选择App-2中的按钮启动App-1。
在APP-2按钮的
onClick()
具有下面的代码: -意图I =新意图(); 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(i);
步骤-4后,onCreate()
活性的被称为这是很正常的。但是我希望Android能够将整个活动堆栈带到前台,因为App-1正在运行。&Android并没有杀死它(如果我在步骤2之后启动了App-1,这种行为也是一样)。
我想让活动C显示给用户。
如果可以做到这一点,请帮助我。
我已经尝试将活动A作为singleTask & 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>
NO。你不能避免onCreate()被调用!你需要在你的活动流程中找到另一种方式。 – ankitjaininfo 2010-09-01 12:37:18
感谢Ankit的回应。我希望你已经完全阅读这篇文章,但我同意它需要很多耐心和时间。我认为这不是很难做到。开发人员可能希望采取这种行为来尽量减少要编写的代码数量,以模仿相同的行为。我不确定提供这样的选择有什么困难(当然有一些可以理解的限制)。 – Shivaprasad 2010-09-07 08:58:50