Я пытаюсь создать Сервис , который работает, даже когда мое приложение закрыто.Однако мне нужно использовать мое приложение Context внутри этой Service .Когда приложение работает, служба также работает, но когда я закрываю приложение (вызывался 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();
}
}
Запуск службы с Activity onCreate ()
startService(new Intent(this, SubscribeService.class));
Как использовать Контекст в этом сценарии?
Редактировать
Удалось заставить его работать должным образом после помощи Onik .Мне просто нужно было позвонить на MyApp.getContext();
до super.onCreate();
Вот так:
@Override
public void onCreate() {
context = MyApp.getContext();
super.onCreate();
}