java - 在后台运行一段时间后关闭应用程序

标签 java android exit

我正在寻找一种方法,在一段时间后,当应用程序没有焦点时关闭该应用程序。例如,如果用户打开其他应用程序,则该应用程序应在 5 分钟后退出。我尝试过使用 runnable 并创建线程。但当应用程序在后台时,这些方法似乎不起作用(也许它们暂停了,我不确定)。那么当应用程序没有焦点时如何关闭它呢?

对于那些想知道我想这样做的原因是该应用程序包含一些有关用户的敏感数据的人,因此我想确保在他们不使用它时将其全部清除。

最佳答案

像这样的东西可能会起作用:

Activity 类中的字段:

private Thread t = null;

内部onResume():

if(t!=null) {
    if(t.isAlive()) {
        t.interrupt();
        t.join();
    }
    t=null;
}

内部onPause():

t = new Thread() {
    public void run() {
            try {
                sleep(5*60*1000);
                // Wipe your valuable data here
                System.exit(0);
            } catch (InterruptedException e) {
                return;
            }
    }.start();
}

关于java - 在后台运行一段时间后关闭应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32543392/

相关文章:

java - 使用逗号格式化 JTable 列单元格中的整数

java - 如何使用 .putExtra() 将变化的变量传递给另一个类

java - 我的 Android 偏好设置存在布局问题

java - 在 Canvas 上画一条弯曲的路径?

Go os.Exit(2) 显示一个 bash $?值为 1

c# 控制台应用程序保持在任务计划程序 Windows 2016 中运行的状态

java - 如何用整数填充 java 中的二维 ArrayList?

Java Web应用程序通信设计?

java - 我应该使用 OpenGL 来制作带动画的国际象棋吗?

regex - Bash:一行以 grep 命令的相反状态退出?