Просто я делаю запуск потока (работоспособным) при методе onCreate
((он работает как максимум от 0 до 10 минут, как максимум))
проблема в остановке потока через 10 минут, Я не знаю точное время, когда поток перестает работать.
что я делаю, чтобы решить это,
- Я устал добавлять (PowerManager / WakeLock) в основной деятельности, а также вманифест.
- Я слышал, что thread.interrupt ();, очистить поток и заставить его снова работать как новый.
но до сих пор проблема все та же, поток остановился после сна моего андроида.
мой код:
MainActivity
private PowerManager.WakeLock wl;
onCreate :
PowerManager pM = (PowerManager)getSystemService(Context.POWER_SERVICE);
wl = pM.newWakeLock(PowerManager.FULL_WAKE_LOCK, "AppName:background worker");
super.onCreate(savedInstanceState);
wl.acquire();
Thread thread=new Thread(){
@Override
public void run(){
while (!isInterrupted()){
try {
Thread.sleep(25000);
runOnUiThread((new Runnable() {
@Override
public void run() {
/// HTTP Request to get source work every 25 sec with notification method as push.
}
}));
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
thread.interrupt();
thread.start();
Манифест:
<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission>
я просто пытаюсь запускать фоновую задачу каждые X секунд, без закрытия приложения / работыв спящем режиме.