2015年4月28日 星期二

android-Service 執行線程工作無回應

若要在Service執行耗時的工作、被阻塞的工作
例如 : 延遲執行、卡住流程...等。
應用程式將會出現ANR(Application Not Responging)
簡單的說手機將一直靜止而導致無任何動作
為了避免以上的情況發生
建議可以製造一個新的獨立線程
讓主線程能夠順利地去執行

如果要在Service製造延遲效果可以如下 :

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        
        ThreadDemo td=new ThreadDemo();
        td.start();
        return START_STICKY;
    }
    
    private class ThreadDemo extends Thread{
        @Override
        public void run() {
            super.run();
            try{
            sleep(70*1000);    
            }catch(Exception e){
                e.getMessage();
            }
        }
    }

參考資料 : 來源
參考資料 : 來源2

歡迎轉載,請註明出處。

沒有留言:

張貼留言