ユーザーとアプリによって自動的にキューに入れられるintentserviceがあります。ユーザーがアプリケーションからログアウトしたときにキューに入れられたすべての保留中のインテントを強制終了できるようにする必要がありますが、それを機能させることができないようです。stopService()とstopself()を試しましたが、ユーザーがログアウトした後もインテントはintentserviceを起動し続けます。インテントのIDを取得しようとしますが、インテントサービスが開始されるたびに、インテントIDを保持する変数が空になるため、これは困難です。これが私のintentserviceコードです:
public class MainUploadIntentService extends IntentService {
private final String TAG = "MAINUPLOADINTSER";
private GMLHandsetApplication app = null;
private SimpleDateFormat sdf = null;
public boolean recStops = true;
public MainUploadIntentService() {
super("Main Upload Intent Service");
GMLHandsetApplication.writeToLogs(TAG,
"GMLMainUploadIntentService Constructor");
}
@Override
protected void onHandleIntent(Intent intent) {
GMLHandsetApplication.writeToLogs(TAG, "onHandleIntent Started");
if (app == null) {
app = (GMLHandsetApplication) getApplication();
}
uploadData(app);
GMLHandsetApplication.writeToLogs(TAG, "onHandleIntent Finished");
}
@Override
public void onDestroy() {
GMLHandsetApplication.writeToLogs(TAG, "onDestroy Started");
app = null;
stopSelf();
GMLHandsetApplication.writeToLogs(TAG, "onDestroy completed");
}
public void uploadData(GMLHandsetApplication appl) {
//All of my code that needs to be ran
}