java - 时间到后弹出带有倒计时器的Activity,如何杀死它?

标签 java android android-activity

我有一种有 2 个 Activity 的游戏:开始 Activity (具有高分、开始按钮和教程按钮)和基于倒计时器的主游戏 Activity ,当时间到了时,游戏返回到开始 Activity 。

问题是当用户开始游戏,然后点击主页按钮并返回主屏幕(只需通过主页按钮离开游戏)一切正常,直到时间到,然后开始 Activity 出现在屏幕上,但消息丢失。

我尝试过各种组合方法,例如 onPause 女巫 finish(); 等,但它不起作用或导致应用程序强制关闭。

我无法像我在这种情况下所做的那样处理主页按钮点击。

有什么方法可以在应用程序不在前台时暂停应用程序并暂停所有线程吗?

最佳答案

我建议两种方式

1

创建全局变量,例如

private isInForgrand = false;

并在 onStop() 或 onPause() 和 onResume() 中更改它

@Override
public void onStop() {
    isInForgrand = false;
    super.onStop();
}
@Override
public void onResume() {
    super.onResume();
    isInForgrand = true;
}

并在 onFinish() 中检查它

@Override
        public void onFinish() {
            if(isInForgrand){
               //do what you want  
             }else{
               //your app NOT in Forgrannd
        }

2

你可以在onStop()中取消CountDownTimer

@Override
public void onStop() { 
    super.onStop();
    mCountDownTimer.cancel();
}

关于java - 时间到后弹出带有倒计时器的Activity,如何杀死它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48865593/

相关文章:

java - GSON:将 JSON 数据输入到 Java 类,其中类名存储在字符串中

java - Apache poi + Java : Write to a worksheet without deleting existing data

android - FutureBuilder 无法正常工作

android - 在 Android M 开发者预览版中找不到 PackageInstallerActivity

使用 Microsoft Visual Studio Code 进行 Java 编程

java - 线程完成时是否发出通知信号?为什么此代码示例有效?

java - 在哪里可以从 Twitter 搜索返回的 HttpClient 获取 http 响应代码?

android - Google Cloud Datastore/Mobile Backend Starter - update/updateAll 调用权限失败

android - 处理(许多)返回堆栈

java - GarphView 不工作,空白 Activity