10 분마다 반복적으로 프로세스를 실행하는 Android 앱을 만들려고합니다. 내가 발견 한대로 Handlers
은 타이머 또는 예약보다 더 안정적입니다. 그래서 아래 주어진 코드를 사용하여 Handlers
을 사용하여 앱을 개발할 것입니다.반복 작업을위한 Android Handler - 중복 될까요? Timer-task VS handler VS alarm-manager
나는 아래 코드가 onCreate
에 Handler
을 생성 할 때부터 앱을 시작하고 평행하게 유지할 때마다 별도의 Handlers
을 만들지 않을까 걱정합니다.
그럼 한 번에 하나의 백그라운드에서 실행되는 단일 Handler
만 유지하는 가장 좋은 방법은 무엇입니까?
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
handler = new Handler(); // new handler
handler.postDelayed(runnable, 1000*60*10); // 10 mins int.
setContentView(R.layout.activity_pro__sms);
}
private Runnable runnable = new Runnable() {
@Override
public void run() {
/* my set of codes for repeated work */
foobar();
handler.postDelayed(this, 1000*60*10); // reschedule the handler
}
};
궁금한 점 : '반복 작업'의 배경은 무엇입니까? 또는 아마도 더 나은 말했다 : 어떤 종류의 앱인가? 사용자가 한 번에 10 분 이상 앱을 적극적으로 사용한다고 생각하는 것은 관대 한 가정 일 수 있습니다 (게임이나 그렇지 않은 경우가 아니면 내 질문). 앱이 포어 그라운드에 있지 않은 상태에서'Handler'를 사용하면 올바른 행동을 취할 수 없습니다. –
왜 서비스를 사용하지 않습니까? –
수면 모드에서도 작업을 놓치지 않아도됩니다. 유휴 (절전) 모드에서도 서비스가 활성화 될 수 있습니까? 아니면 잠자기 잠금 장치가 있어야합니까? AlarmManager와 비교하여 서비스 별 리소스 사용량은 어떻습니까 (이제 알람 관리자로 문제를 해결하려고합니다). –