我有一个应用程序,我在后台运行一个计时器事件,检查是否不活动。当一段时间过去之后,我想调用finish()方法来处理我的应用程序(任务)当前最重要的任何活动。请注意,我的应用程序可以在后台,因此我不能只使用设备上最活跃的活动。我的问题是找到我的任务的最顶层活动,然后调用该活动的finish()方法。下面是我正在使用的Runnable计时器的片段。我的片段中的“活动”变量是我似乎找不到的东西。
mUpdateTimeTask = new Runnable()
{
public void run()
{
// - for every 10 seconds, this runnable task will check the inactivity time and will exit this app
// if the time allocated is exceeded
long longNowTime = System.currentTimeMillis()/1000;
if ( longNowTime-globalVariables.longLastActivityTime >= globalVariables.intLockoutDuration )
{
// - first, we'll stop the lockout timer from running
mHandler.removeCallbacks(mUpdateTimeTask);
// - call the finish() method to close the top most activity for this task (app)
activity.finish();
}
mHandler.postDelayed(this,mIntInterval);
}
};
任何人都可以提供一些建议,告诉我如何获取最活跃的Activity对象,并调用finish()方法关闭它?
感谢。
答案 0 :(得分:1)
使用常见的onPause和onResume方法创建一个公共超类的所有活动子类,这些方法维护一个“TopmostActivity”变量,可能作为超类的静态字段。