일반적으로 응용 프로그램을 닫을 때 내 부울에 true를 추가로 onStartCommand를 사용하여 안전하게 종료하라는 신호를 보냅니다. 내 응용 프로그램 클래스 'onTerminate'에서이 작업을 수행합니다. 이 블록에서 응용 프로그램을 닫을 때 nullptrexception을 얻었 기 때문에 if 문을 추가했습니다. 강제 종료가가가는 .. 더 나은/더 안전한 방법이 있나요 무슨 정확하게 볼 어렵게 디버거를 끊 것을안드로이드는 스레드로 예외를 닫습니다.
static final int DELAY = 2000;
public void run() {
while (mIsRunning) {
if (!mJobQueue.isEmpty()) {
//do work
}
else if (mSafeShutdown) {
mIsRunning = false;
stopSelf();
}
else {
sleep(DELAY);
}
}
}
사실 - 그러나
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if (intent != null) {
boolean state = intent.getBooleanExtra("terminate", false);
mSafeShutdown = state;
}
else if (mUpdater != null && mUpdater.isRunning()) {
Log.d(TAG, "activity force closed?" +
" Attempting to handle service thread shutdown safely...");
mUpdater.isRunning(false);
try {
mUpdater.join();
} catch (InterruptedException e) {
Log.e(TAG,"Service's UpdaterThread couldn't join");
}
}
return START_STICKY;
}
이 내 서비스가 살아 남기 위해 원인 내 서비스 스레드에게 응용 프로그램이 종료되었음을 알리는
"나는 내 응용 프로그램 클래스 '들의 OnDestroy에서 이렇게"... 당신은 나에게 다른 문서가 없다면, 안드로이드 응용 프로그램 클래스는들의 OnDestroy() 메소드가 없습니다 . 또한 왜 강제 폐쇄입니까? – Squonk
@MisterSquonk : 말하자면, 말하기가 잘못되었습니다. 많은 사람들이 배터리 수명을 많이 절약한다고 생각하여 응용 프로그램을 강제 종료하려고합니다. 나는 사회가 생각하는 방식에 책임이 없다! –