Sac*_*and 7 java notifications android android-activity
我的申请有三个活动说A -> B-> C.
活动A通过另一个活动调用startActivityForResult().活动B和C也被类似地调用.我也必须从通知栏调用活动A(如果有一些特定的通知).
现在,如果我现在处于活动B或C中,并且我点击通知栏,并且调用活动A,则应用程序仅转到活动A,并且通过活动B或C输入的数据不会保留.
我不想要这样的行为.我希望如果我点击通知,它应该只重定向到当前屏幕.有人可以提供帮助.(我提到activity:launchMode过SingleTask).
der*_*ann 19
使用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>
Run Code Online (Sandbox Code Playgroud)
这是另一个可能有用的问题:Android singleTask或singleInstance启动模式?
您也许可以使用静态变量来确定其他数据。不过,我不确定您希望从其他活动访问多少或什么类型的数据。
写入持久存储也可能有效,但同样,您存储的数据以及存储方式的模糊性使得很难回答。onResume只需在每个 Activity 的方法和方法中写入/读取持久存储onSuspend(或创建超级 Activity 类并为 A、B 和 C 扩展它)。