我正在使用下面的代碼啓動服務。這個服務應該啓動Async任務來檢查mysql並提供通知。該服務沒有啓動,我找不到原因?我從服務中沒有收到日誌。 (當我直接從主要活動調用異步任務而沒有服務時,它工作正常)。異步任務服務未啓動
主要活動代碼:
Intent startIntent = new Intent(MainActivity.this, ForegroundService.class);
MainActivity.this.startService(startIntent);
服務類代碼:
public class ForegroundService extends Service {
private static final String LOG_TAG = "ForegroundService";
@Override
public void onCreate() {
Log.i(LOG_TAG, "On Create");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.i(LOG_TAG, "On Start");
new Thread(new Runnable() {
@Override
public void run() {
String newoperator = "Go";
TimeSync ReportCheck= new TimeSync(getApplicationContext());
ReportCheck.execute(newoperator);
}
}).start();
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
Log.i(LOG_TAG, "In onDestroy");
}
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
}
我也發現了一些解決方案,將在主要活動中下面的命令,但該命令並不適用於我的Android工作室。
startIntent.setAction(Constants.ACTION.STARTFOREGROUND_ACTION);
檢查以下內容:1.服務是在清單2中聲明的日誌中onStartCommand獲取打印3.登錄在OnCreate獲取打印 –
完美,我只好問題,第一我不是在mainifest文件中聲明服務,第二個是我在MainActivityClass中阻止服務類。我把它移到一個單獨的類,它的工作:)謝謝 –
很好:)很高興它幫助 –