2016-05-07 97 views
0

我在我的Android應用程序中創建了Service,該應用程序開始在BOOT_COMPLETE上運行。我想運行我的Service不停(始終運行),併爲此我用while(true)裏面onStartCommand()方法。那麼,使用while(true)還有什麼更好的方法可以在後臺運行服務嗎?如何在後臺運行服務(非停止) - Android

這是我服務的代碼:

package com.example.abc.project1; 

import android.app.Service; 
import android.content.Intent; 
import android.os.IBinder; 
import org.json.*; 
import java.io.*; 
import java.net.*; 
import java.util.*; 


public class HelloService extends Service { 

    private static final String TAG = "HelloService"; 
    private boolean isRunning = false; 

    @Override 
    public IBinder onBind(Intent arg0) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     isRunning = true; 
    } 


    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     new Thread(new Runnable() { 
      @Override 
      public void run() { 
       while(true) { 
        /*non-stop work to be done in background always*/ 
       } 
      } 
     }).start(); 
     return Service.START_STICKY; 
    } 


    @Override 
    public void onDestroy() { 
     isRunning = false; 
    } 

} 
+0

我會'while(isRunning)',但是你現在的做法有什麼問題?它不起作用嗎? –

+1

我認爲服務會繼續運行,直到您調用stopService()方法或直到您關閉手機 –

+1

所有的android服務都會運行,直到您明確調用stopService或關閉手機。 –

回答