2011-07-15 37 views
7

我的应用程序有三个活动,分别为A -> B-> C单个活动实例

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

现在,如果当前我处于活动B或C中,并且我单击通知栏并调用活动A,则该应用程序仅进入活动A,并且通过活动B或C输入的数据不会持续存在。

我不想要这样的行为。我希望如果点击通知,它应该只重定向到当前屏幕。有人能帮忙吗? (我提到activity:launchModeSingleTask)。

回答

0

您可以使用一个静态变量来确定其他数据。不过,我不确定您希望从其他活动访问多少或什么类型的数据。

也写入永久存储器可能会起作用,但又是 - 您存储什么数据的模糊性以及如何使其难以回答。只要在每个活动的onResumeonSuspend方法中写入/读取永久存储(或创建超级活动类并将其扩展为A,B和C)。

+0

这对我也不起作用对不起,很长一段时间的回应 – Sachchidanand

+0

持久存储不起作用 – CrackerJack9

+0

没有不行,所以我们改变了我们的应用程序的设计 任何方式谢谢所以许多 – Sachchidanand

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?

+0

不,它不起作用。我尝试了很多,但只提到了单个任务,没有工作 – Sachchidanand