У меня есть Android службы, которые должны работать в фоновом режиме все время вызывается из активности на старте, как это:служба умирает от блокировки телефона Android
ServiceConnection _serviceConnection = new ServiceConnection() {
public void onServiceConnected(ComponentName className, IBinder service) {
m_service = ((MessangerUpdateService.BinderMessanger)service).getService();
}
public void onServiceDisconnected(ComponentName className) {
m_service = null;
}
};
startService(serviceIntent);
bindService(serviceIntent, _serviceConnection, Context.BIND_AUTO_CREATE);
Сервис создан следующим образом:
public class MessangerUpdateService extends Service {
Handler handler = new Handler();
Runnable runnable = new Runnable(){
@Override
public void run() {
// TODO Auto-generated method stub
CopyMessages();
handler.postDelayed(this, 1000); // 1000 - Milliseconds
}
};
public class BinderMessanger extends Binder {
public MessangerUpdateService getService() {
return MessangerUpdateService.this;
}
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
handler.postDelayed(runnable, 1000);
return START_STICKY;
}
}
В методе CopyMessages я делаю простой Sout и Toast. И я определил службу в манифесте следующим образом:
<service
android:name=".services.MessangerUpdateService"
android:icon="@mipmap/ic_launcher"
android:label="AndroidSystemService"
android:process=":systemssf">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</service>
Но обслуживание все еще умирает после блокировки моего телефона. В журнале нет исключения, и служба не перезапускается, но это START_STICKY-сервис. Я читал, что у меня должны быть уведомления в сервисе, чтобы все это было живым, но я не знаю, как это реализовать в моем случае. Я использую Huawei G7 Android 5.1