2015-07-29 3 views
0

Я сделал какое-то приложение, и я хотел бы добавить уведомление пользователю, когда приложение переходит на задний план после 1 часа.Сообщите пользователю, когда приложение на фоне

public class MainActivity extends Activity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     setContentView(R.layout.main); 

    } 

    @Override 
    protected void onPause() { 
    TimerTask backgroundCheck = new TimerTask() { 

     @Override 
     public void run() { 
      ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE); 
      List<RunningTaskInfo> tasks = am.getRunningTasks(1); 
      if (!tasks.isEmpty()) { 
      ComponentName topActivity = tasks.get(0).topActivity; 
       if (!topActivity.getPackageName().equals(getApplicationContext().getPackageName())) { 
         // APP in background, do something 

       } 
      } 

       // APP in foreground, do something else 
    } 
}; 

Timer isBackgroundChecker = new Timer(); 
isBackgroundChecker.schedule(backgroundCheck, 1000, 1000); 

super.onPause(); 
} 





} 

Это мой код, но я не знаю, как сделать it..Please помочь мне с полной коды

+0

Используйте AlarmManager для этого –

ответ

0

Лучше переопределение onWindowFocusChanged. Она вызывается только когда фокус окно было изменено

@Override 
public void onWindowFocusChanged(boolean hasFocus) { 
    if (!hasFocus) { 
     startTimer(); 
    } 
    super.onWindowFocusChanged(hasFocus); 
} 

Я также рекомендовал бы использовать CountDownTimer вместо таймера

+0

Hi. Спасибо за ответ. Пожалуйста, проверьте, правильно это или нет. – network

+0

Привет. Спасибо за ответ. но я не знаю, как его применять. пожалуйста, помогите мне – network

Смежные вопросы