gpt4 book ai didi

android - 清除旧 SDK 上的完整 Android Activity 堆栈(缺少 FLAG_ACTIVITY_CLEAR_TASK)

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:34:39 29 4
gpt4 key购买 nike

我已经对 SO 进行了一些阅读和搜索,但找不到清除当前 Activity 堆栈的方法。我的应用程序的上下文是由后台服务/通知启动的 Activity 。

想象一下,我的应用程序允许您组织人员列表。几个小时前,您正在“查看” Activity 中查看人 X,现在它位于堆栈的顶部。在未来的某个时间点,服务会触发,我会为 Y 弹出一个新的“通知” Activity 。从那里您可以编辑 Y 的详细信息。

当您完成此 Activity 时,弹出堆栈并最终查看人员 X 将是一种令人困惑的用户体验。理想情况下,我想回到用户正在做的事情(电子邮件等...),或者至少到我的应用主页。

我尝试使用 FLAG_ACTIVTY_NEW_TASK 启动“通知”,但这似乎没有帮助:当任务完成时,它只是返回到上一个任务。我要的好像是Android 3新的FLAG_ACTIVITY_CLEAR_TASK,之前的SDK都没有。

有没有人有实现这一目标的建议?

最佳答案

只是杀光他们!

您可以使用 BroadcastReceivers 实现:

  • 像这样创建一个 BaseActivity:

public class BaseActivity extends GuiceActivity {
private KillReceiver mKillReceiver;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mKillReceiver = new KillReceiver();
registerReceiver(mKillReceiver,
IntentFilter.create("kill", "spartan!!!"));
}
@Override
protected void onDestroy() {
super.onDestroy();
unregisterReceiver(mKillReceiver);
}
private final class KillReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
finish();
}
}
}

  • 让您的 Activity 扩展 BaseActivity
  • 每当您想清除堆栈时:

Intent intent = new Intent("kill");
intent.setType("spartan!!!");
sendBroadcast(intent);

关于android - 清除旧 SDK 上的完整 Android Activity 堆栈(缺少 FLAG_ACTIVITY_CLEAR_TASK),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5154743/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com