簡體   English   中英

Android服務未啟動

[英]Android service is not starting

我需要在點擊android應用圖標后啟動后台服務。 下面是我的Activity oncreate()方法。

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_executable_runner);

    startService(new Intent(this, ExeRunnerService.class));
}

而這是我覆蓋的服務類,其余的都是默認的。

public class ExeRunnerService extends Service{
    public int onStartCommand(Intent intent, int flags, int startId) {
    return START_STICKY;

}
@Override
public void onCreate() {
    Thread th = new Thread(new Runnable() {
        public void run() {
            Log.d(TAG, "Service Running");
        }
    });
    th.start();

}
}

我沒有任何相同的初始化代碼。 但是,當我啟動應用程序時,沒有得到任何服務日志。

我將放在onStartCommand上並對其進行重寫,並在重寫的onCreate方法中調用super.onCreate();

像這樣:

public class MyService extends Service {
private static boolean isRunning = false;
private Context context;

@Override
public void onCreate() {
    super.onCreate();
    context = this;
}

public static boolean isServiceRunning() {
    return isRunning;
}

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    if(!isRunning) {
      isRunning = true;

    }
    return START_STICKY;
}

iv添加了isRunning標志,因為我經常體驗到我的服務已經在運行,然后再次初始化對象不是一個好主意。

您的服務正在調用,但是線程存在問題,請使用服務的on create方法中的以下代碼替換您的代碼

public void onCreate()
{
    Log.d("Run", "Service Running");
     new Thread(new Runnable()
    {

        public void run()
        {
            Log.d("Run", "Service Running");
        }
    }).start();;

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM