2011-09-11 5 views
-1

저는 백그라운드에서 타이머가 작동하지 않는지 확인하는 앱을 가지고 있습니다. 일정 시간이 지나면 내 앱 (작업)에 대해 가장 중요한 활동 인 finish() 메소드를 호출하려고합니다. 참고로, 내 앱이 백그라운드에있을 수 있으므로 기기에서 가장 활발한 활동을 사용할 수 없습니다. 내 문제는 내 작업에 가장 많이 사용되는 활동을 찾은 다음 해당 활동에 finish() 메서드를 호출하는 것입니다. 아래는 내가 사용하고있는 Runnable 타이머의 스 니펫입니다. 내 스 니펫의 "activity"변수는 내가 찾지 못하는 것입니다.작업에 가장 많은 액티비티를 찾는 방법?

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() 메소드를 호출하여이를 닫을 수 있습니까?

감사합니다.

답변

1

"TopmostActivity"변수를 유지하는 공통 onPause 및 onResume 메소드가있는 공통 수퍼 클래스의 모든 하위 클래스 (예 : 수퍼 클래스의 정적 필드)를 만듭니다.

관련 문제