【发布时间】:2016-11-08 08:53:37
【问题描述】:
我从服务创建通知。此通知包含创建活动 A 的意图:
...
Intent intent = new Intent(this, A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
...
而活动A,当接收到意图时,使用相同的标志创建活动B。
问题是:当我目前什么都不显示(应用程序已关闭或在后台)时,它可以工作。当我点击通知并且当前显示活动 A 时,它也可以工作,并且我有这个跟踪:
onActivityPaused(com.*****.A)
onActivityCreated(com..*****.A)
onActivityStarted(com..*****.A)
onActivityResumed(com..*****.A)
onActivityPaused(com..*****.A)
onActivityCreated(com..*****.B)
onActivityStarted(com..*****.B)
onActivityResumed(com..*****.B)
onActivityStopped(com..*****.A)
onActivityDestroyed(com..*****.A)
onActivityStopped(com..*****.A)
(有些奇怪,因为 A 停止了两次,而我的标志 FLAG_ACTIVITY_CLEAR_TOP 不应该重新创建一个新标志?)
但是当我当前显示活动 B 时,它会启动然后停止并销毁......我不明白为什么,我需要这个活动才能(重新)开始。这里的痕迹:
onActivityPaused(com.*****.B) ? Why existing B is not destroyed ?
onActivityDestroyed(com.*****.A)
onActivityCreated(com.*****.A)
onActivityStarted(com.*****.A)
onActivityResumed(com.*****.A)
onActivityPaused(com.*****.A)
onActivityCreated(com.*****.B)
onActivityStarted(com.*****.B)
onActivityResumed(com.*****.B)
onActivityStopped(com.*****.B) ??
onActivityDestroyed(com.*****.B) ??
onActivityStopped(com.*****.A)
我忘记了什么?
编辑:
我的清单是:
<activity
android:name="com.*****.A"
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name="com.*****.B"
android:launchMode="singleTop" //Try just now with this line, should I keep it?
android:configChanges="keyboardHidden|orientation|screenSize"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
</activity>
【问题讨论】:
-
请发布您的清单
标签: android android-intent android-activity android-notifications