单一活动实例

时间:2011-07-15 11:58:36

标签: java android android-activity notifications

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

通过startActivityForResult()从另一项活动调用活动A.活动B和C也被类似地调用。我也必须从通知栏调用活动A(如果有一些特定的通知)。

现在,如果我现在处于活动B或C中,并且我点击通知栏,并且调用活动A,则应用程序仅转到活动A,并且通过活动B或C输入的数据不会保留。

我不想要这样的行为。我希望如果我点击通知,它应该只重定向到当前屏幕。有人可以提供帮助。 (我将activity:launchMode称为SingleTask)。

2 个答案:

答案 0 :(得分: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>

这是另一个可能有用的问题:Android singleTask or singleInstance launch mode?

答案 1 :(得分:0)

您可以使用静态变量来确定其他数据。但是,我不确定您希望从其他活动访问多少或哪种类型的数据。

同样,写入持久存储可能会起作用,但同样重要的是 - 您存储的数据的模糊性以及如何难以回答。只需在每个Activity的onResumeonSuspend方法中编写/读取持久存储(或者创建超级Activity类并将其扩展为A,B和C.