【发布时间】:2020-12-04 07:56:11
【问题描述】:
我有一个反应原生项目。并且有一个服务在后台运行。 当应用程序没有运行时,服务还活着,它可能想在一段时间内启动 MainActivity。我正在使用以下代码启动 MainActivity(我尝试了 noFlag/addFlag/setFlag):
Intent Intent = new Intent(context, MainActivity.class);
// intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
// intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
// intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra(key, value);
context.startActivity(intent);
AndroidManifest.xml 声明如下:
<activity
android:name=".MainActivity"
android:launchMode="singleTask”>
</activity>
每次 MainActivity 都会被创建两次。第一次我们可以得到额外的值,但第二次它会是空的。
如何确保 MainActivity 只创建一次?
谢谢。
【问题讨论】:
-
第一次启动应用是怎样的?如果您是第一次从安装程序或 IDE(如 Android Studio)启动应用程序,您可能会看到这个长期存在的令人讨厌的 Android 错误:stackoverflow.com/questions/16283079/…
-
如果应用已经在运行,您希望发生什么?
-
就我而言,每次推送都会创建两次活动。由于它是一个 singleTask 活动,我希望它应该只调用
onNewIntent而不是创建新活动 -
请终止应用程序(使用设置->应用程序->您的应用程序->强制停止)。然后从主屏幕启动应用程序。然后看看你是否仍然看到这种行为。
-
@DavidWasser 完成。谢谢提醒。
标签: android react-native android-activity launchmode