[英]Single Instance of Activity
我的应用程序有三个活动,比如A -> B-> C
。
通过startActivityForResult()
从另一个活动调用活动 A。 活动 B 和 C 也以类似方式调用。 我还必须从通知栏中调用活动 A(如果有一些特定的通知)。
现在,如果我目前处于活动 B 或 C 中,然后单击通知栏并调用活动 A,则应用程序仅转到活动 A,并且通过活动 B 或 C 输入的数据不会保留。
我不想要这样的行为。 我希望如果我点击通知,它应该只重定向到当前屏幕。 有人可以帮忙吗。 (我提到了activity:launchMode
作为SingleTask
)。
使用android:launchMode="singleTask"
可能是最好的方法,因为如果它已经在运行,它不会重新创建活动。 只需将其添加到您的 AndroidManifest.xml 中的活动中,您就应该一切就绪。
<activity
android:name=".MyActivity"
android:label="@string/app_name"
android:launchMode="singleTask"
>
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
这是另一个可能有用的问题: Android singleTask or singleInstance launch mode?
您可以使用 static 变量来确定其他数据。 不过,我不确定您希望从其他活动中访问多少或什么类型的数据。
写入持久存储也可能有效,但同样 - 您存储的数据以及如何存储的模糊性使得难以回答。 只需在每个 Activity 的onResume
和onSuspend
方法中写入/读取持久存储(或创建超级 Activity class 并将其扩展为 A、B 和 C。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.