Предотвратить поток от остановки после сна Android - PullRequest
0 голосов
/ 21 октября 2019

Просто я делаю запуск потока (работоспособным) при методе 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 секунд, без закрытия приложения / работыв спящем режиме.

...