我创建了一个类
public class MyCountDownTimer extends CountDownTimer {
Activity activity;
public MyCountDownTimer(long startTime, long interval,Activity m_activity) {
super(startTime, interval);
activity = m_activity;
}
@Override
public void onFinish() {
//DO WHATEVER YOU WANT HERE
FunctionsUtil.ShowMessage("TERMINO SU TIEMPO",Toast.LENGTH_LONG);
valoresGenerales.banderaCountDownTimer = false;
android.os.Process.killProcess(android.os.Process.myPid());
}
@Override
public void onTick(long millisUntilFinished) {
if( millisUntilFinished/1000 == 35)
{
FunctionsUtil.ShowMessage("SI no usa en " + millisUntilFinished/1000 + " segundos se cerrara automáticamente.",Toast.LENGTH_LONG);
}
if( millisUntilFinished/1000 == 10)
{
FunctionsUtil.ShowMessage("SI no usa en " + millisUntilFinished/1000 + " segundos se cerrara automáticamente.",Toast.LENGTH_LONG);
}
}
}
如您所知 MyCountDownTimer ......这是一个倒数计数器......我想做的是......当这个计数器达到 0 时关闭我的应用程序并输入 onFinish() 我把代码
android.os.Process.killProcess(android.os.Process.myPid());
但是在做测试时我意识到它只会关闭一个活动(可见的那个)并自动打开actMain(main)。
但我的应用程序有几个打开的活动(活动 1 打开活动 2,然后打开活动 3 等),这意味着我有多个活动在使用,因此代码对我没有帮助。
什么代码可以帮助我???
非常感谢。
我给你一个解决方案,你的活动必须从“父”活动扩展,例如,我们假设有这 3 个活动,这 3 个必须从父活动扩展
ParentActivity
:这将是活动代码
ParentActivity
,它有 2 个方法setActivity()
将活动引用添加到 aList
并quitApp()
搜索保存在列表中的所有活动并终止它们:在您的活动中,您必须添加以下行:
将活动添加到
List
.并且在任何你都可以调用该方法:
它将关闭所有在定义
Activities
的一个中注册的。List
ParentActivity
在您的代码中,您可以
quitApp()
在内部调用onFinish()
以关闭所有活动:当计时器用完时,将主要活动加载在所有其他活动之上。
在你的主要活动中
onCreate
用这段代码很容易做到
其中 act.. 是当前活动(任何屏幕)
和
就我而言,登录屏幕(主屏幕)
回复可能会迟到,但以防其他人有同样的问题。
你所要做的就是把方法
例如,如果您有一个关闭整个应用程序的按钮,您可以执行以下操作: