防止线程在Android睡眠后停止

时间:2019-10-21 04:30:41

标签: java android multithreading runnable

只是我在onCreate方法上创建了一个线程(可运行)启动

(((最多可以在0到10分钟之间正常工作))

问题可能是10分钟后线程停止,我不知道线程停止工作的确切时间。

我要解决的问题,

  • 我不愿意在清单的主要活动中添加(PowerManager / WakeLock)。
  • 我听到了thread.interrupt(); ,是清晰的线程,并使其重新工作即可。

但是直到现在问题仍然相同,线程在我的Android睡眠后停止。

我的代码:

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秒运行一次后台任务,而无需关闭应用/在睡眠模式下工作。

0 个答案:

没有答案