[英]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.