2016-05-29 154 views
0

我正在使用下面的代碼啓動服務。這個服務應該啓動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

檢查以下內容:1.服務是在清單2中聲明的日誌中onStartCommand獲取打印3.登錄在OnCreate獲取打印 –

+0

完美,我只好問題,第一我不是在mainifest文件中聲明服務,第二個是我在MainActivityClass中阻止服務類。我把它移到一個單獨的類,它的工作:)謝謝 –

+0

很好:)很高興它幫助 –

回答

1

你使用的是什麼版本的android studio?你有沒有試過更新到最新版本?

Download Android Studio 2.1

+0

我有最新的一個,通過在清單文件中聲明服務解決問題。謝謝 –

+0

我很高興你設法解決你的問題:) –