gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 04:50:29 25 4
gpt4 key购买 nike

我有两个应用程序 App-1 和 App-2。 App-2 有一个启动 App-1 的按钮。

需要的行为如下:-

  1. 用户启动 App-1(使用启动器), Activity A、B 和 C 已启动, Activity C 位于 Activity 堆栈的顶部。
  2. 请注意,App-1 的入口点是 Activity 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的 Activity A i.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK); i.putExtra("x", "y"); 启动 Activity (i);

在第 4 步之后, Activity A 的 onCreate() 被调用,这是很正常的。但是我希望 Android 将整个 Activity Stack 带到前台,因为 App-1 正在运行并且 Android 没有杀死它。(如果我在第 2 步之后启动了 App-1,这也是相同的行为)。

我想向用户显示 Activity C。

如果可以,请帮助我。

我尝试将 Activity A 设为 singleTask 和 singleInstance。如果我这样做,只有 Activity A 被带到前台,这不是我想要的。

App-1 list 的 fragment 如下所示:-

<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>

最佳答案

FLAG_ACTIVITY_NEW_TASK 通知Android开始一个新任务;新任务不包含 B 和 C,因此不要指望它们中的任何一个都会显示。此外,FLAG_ACTIVITY_CLEAR_TOP 删除了 B 和 C,这与您想要的完全相反。

尝试移除这两个标志。

关于Android 我可以避免调用 onCreate() 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3617787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com