【发布时间】:2013-09-13 18:35:42
【问题描述】:
Any.Do 样式“提醒”对话框...(是的,白色的,正在系统范围内显示); 我该怎么做?
我用半透明主题开始一个 ACTIVITY X,所以我需要用标志 “NEW_TASK” 开始它 和 "singleTask" 以便在后台没有之前的 ACTIVITY N。
现在我想做以下事情:
当在此 ACTIVITY X 上按下 主页按钮或后退按钮时,我不想再将它放在“backstack”中。就像它走了。因此,当应用再次从启动器(或任务切换器)启动时,它应该会将您带回到不同的活动(活动 N)。
它现在做了什么: 当再次从启动器中选择应用程序时,应该消失的这个特定的 ACTIVITY X(是的,我在 onPause() 中调用了 finish())回来活着......总是。
我该如何存档?
编辑: 一些代码:
<activity
android:name=".ActivityX"
android:theme="@android:style/Theme.Translucent.NoTitleBar"
android:label="@string/app_name"
android:launchMode="singleInstance"
android:noHistory="true"
></activity>
以及调用此活动 x 的意图:
Intent intent = new Intent(getApplicationContext(), ActivityX.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_NO_HISTORY);
只是一个想法: 启动一个服务而不是弹出一个对话框更好吗?因为这实际上是我想要“模拟”但系统范围内的行为......
【问题讨论】:
-
在
onPause中调用finish()进行活动 -
我这样做。但这只是隐藏了活动。再次单击应用程序图标时,前一个不会返回。
-
如果你按下后退按钮并且当你再次启动它时活动仍然存在,那么就会出现问题,因为后退按钮和调用finish()都弹出了backstack
-
可能是因为“新任务”标志?
标签: java android android-activity