如何在反向按下时停止活动及其类进程



我正在为Android编写一个基于警报的应用程序,该应用程序由2个活动组成:

MainActivity - 用户可以设置报警参数。

DataPage - 监控相关数据并向用户显示,如果数据超出限制,则会触发警报(使用 m.player(。

问题是,当用户从数据页面导航回来时,它当然会返回到 MainActivity,但 DataPage 进程仍在后台运行,这是一个问题,因为如果用户再次设置警报,一个新的 DataPage 正在运行,现在设置了 2 个警报(没有取消第一个的选项(。

那么,如何在按下后退按钮时停止活动及其 Java 类进程?

我像这样覆盖了onBackPressed((方法-

finish();
Intent intent = new Intent(this, DataPage.class);
stopService(intent);

这个问题有很多答案。您应该先搜索,而不是直接在此处发布。

简单覆盖背压方法:

 @Override
public void onBackPressed() {
        super.onBackPressed();
        this.finish();
}

这可能会有所帮助:

在要

停止的清单的该活动块中添加android:noHistory="true"属性,每当使用后按时,此属性将从堆栈中删除活动。

消息来源 说:

是否应从活动堆栈中删除活动并在用户导航离开时完成(调用其 finish(( 方法(从它开始,它在屏幕上不再可见 - 如果它应该是"真的"完成,如果没有,则为"假"。默认值为"false"。

值为"真"表示活动不会留下历史痕迹。它不会保留在任务的活动堆栈中,因此用户将无法返回。在这种情况下,onActivityResult(( 永远不会如果针对此活动的结果启动另一个活动,则调用。

活动完成不是问题,但计划警报是问题所在,当您退出活动时,计划警报可能仍处于活动状态。

如果您不想在活动未聚焦时触发警报,则需要取消警报。如果您使用的是 AlarmManager,则调用以下方法:

AlarmManager.cancel();

相关内容

  • 没有找到相关文章

最新更新