내 안드로이드 응용 프로그램에 백그라운드 서비스가 있습니다. MainActivity onResume() 메소드에서 서비스를 시작하고 제대로 작동합니다. 그러나 사용자가 홈 버튼을 누르면 어떻게 서비스를 중지 할 수 있습니까? 현재 언제입니까? 사전에배경 서비스 중지 응용 프로그램이 백그라운드로 이동하면
Intent msgIntent = new Intent(mContext, MyBackgroundService.class);
startService(msgIntent);
감사합니다 - 약간의 시간이 내 서비스 메서드 호출 및 응용 프로그램 강제 stop.Below가 시작 서비스에 대한 내 코드 후 다음 사용자를 눌러 홈 버튼 배경에 응용 프로그램을 이동 한 후 사용자는 다른 응용 프로그램을 엽니 다.
내가 코드를 아래에 사용할 내 서비스에서
편집 - 내가 스톱 서비스에 대한 코드 아래 사용 내 활동에
public void callAsynchronousTask() {
final Handler handler = new Handler();
timer = new Timer();
TimerTask doAsynchronousTask = new TimerTask() {
@Override
public void run() {
handler.post(new Runnable() {
public void run() {
try {
callWebservice();
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
};
timer.schedule(doAsynchronousTask, START_DELAY, DELAY);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
callAsynchronousTask();
return Service.START_NOT_STICKY;
}
@Override
public void onCreate() {
mContext = this;
super.onCreate();
}
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onDestroy() {
super.onDestroy();
if(timer!=null){
timer.cancel();
}
stopSelf();
}
-
@Override
protected void onStop() {
try{
stopService(new Intent(this, MyBackgroundService.class));
isServiceRunning = false;
}
catch(Exception e){
e.printStackTrace();
}
super.onStop();
}
@Override
protected void onPause() {
try{
stopService(new Intent(this, MyBackgroundService.class));
isServiceRunning = false;
}
catch(Exception e){
e.printStackTrace();
}
super.onPause();
}
하지만 내 서비스는 동안 실행됩니다 일부 다른 애플 리케이션을 사용하고 강제 app.From 백그라운드 서비스에서 일부 webservice를 호출하고 데이터베이스에 서비스의 응답을 저장합니다.
업데이트 된 질문을 확인하십시오. 앱이 백그라운드에서 실행 중이며 다른 앱이 실행 중일 때 코드가 있지만 여전히 앱이 다운되어 버렸습니다. – Ravi