Мне снится кошмар, когда я пытаюсь создать простую фоновую службу на Android, которая работает постоянно.
Этот сервис будет выполнять некоторые фоновые задачи, такие как социальные сети пользователей пула и показывать уведомления, поэтому для него требуется только одно взаимодействие с пользователем (логин), после чего он сможет работать вечно до конца дней ....
но этого не происходит
это мой манифест:
<service
android:name=".service.MyService"
android:description="@string/serviceDescription"
android:directBootAware="false"
android:enabled="true"
android:exported="false"
android:icon="@drawable/ic_logo"
android:label="@string/serviceLabel"/>
Я начинаю службу Application onCreate()
if (MyService.getInstance() == null) {
Intent intent = new Intent(this, MyService.class);
startService(intent);
}
услуга:
public void onCreate() {
super.onCreate();
this.workDone = 0;
this.workerMap = new HashMap<User.UserData, Worker>(3);
this.listeners = new HashMap<Worker, Worker.WorkerListener>(3);
this.usernames = new HashMap<APIFacade, List<String>>(3);
this.threadPool = Executors.newFixedThreadPool(3);
INSTANCE = this;
}
АБСОЛЮТНО НИГДЕ В МОЕМ КОДЕ Я НЕ НАЗЫВАЮ STOPSERVICE И STOPSELF
так почему я получаю исключение nullpointerexception в некоторых случайных ситуациях?
кто-то даже сказал мне сделать следующий код, чтобы заставить Android «перезапустить» службу
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY;
}
может кто-нибудь, пожалуйста, помогите мне... я очень переживаю из-за этой проблемы
у моего приложения более 1000 пользователей в день, и около 10% из них «находят способ» сделать исключение нулевого указателя при использовании сервиса.