ウルク:
私が作成しようとしているサービスの私のアプリが閉じている場合でも動作します。しかし、私は私のアプリを使用する必要があるコンテキストを、この内サービス。アプリが実行されている場合、サービスは同様に動作しますが、私はアプリ(onDestroy()が呼ばれた)、閉じたときにgetContext()
必ず戻りますnull
。
サービス
public class SubscribeService extends Service {
private Context context;
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
context = this; //Returns null when service is running on background
context = MyApp.getContext(); //Also null
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
//do stuff using context
}
MyAppの
public class MyApp extends Application {
private static Context context;
public static Context getContext() {
return context.getApplicationContext();
}
@Override
public void onCreate() {
context = getApplicationContext();
super.onCreate();
}
}
活動のonCreateからサービス開始()
startService(new Intent(this, SubscribeService.class));
どのように私は使うべきコンテキストを、このシナリオでは?
編集します
それは後に正常に動作させるためにマネージドOnikのヘルプ。私はちょうど呼び出す必要があったMyApp.getContext();
前にsuper.onCreate();
そうように:
@Override
public void onCreate() {
context = MyApp.getContext();
super.onCreate();
}