单一活动实例

我的应用程序有三个活动, A -> B-> C

活动A通过startActivityForResult()从另一个活动中调用。 活动B和C也被称为类似的。 我还必须从通知栏中调用活动A(如果有某个特定的通知)。

现在,如果我现在处于活动B或C中,然后单击通知栏,然后调用活动A,则应用程序仅进入活动A,而通过活动B或Cinput的数据不会保留。

我不想要这样的行为。 我想,如果我点击通知,它应该只redirect到当前屏幕。 有人可以帮忙吗? (我提到activity:launchMode作为SingleTask )。

您可以使用静态variables来确定其他数据。 不过,我不确定您想从其他活动访问多less或哪种types的数据。

同时写入永久性存储也可能起作用,但又是 – 存储的数据含糊不清,以及如何难以回答。 只需在每个Activity的onResumeonSuspend方法中写入/读取持久存储(或创build超级Activity类并将其扩展为A,B和C)。

使用android:launchMode="singleTask"可能是最好的方法,因为如果它已经在运行,它不会重新创build活动。 只需将它添加到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或singleInstance启动模式?