2016-05-29 140 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

我很高兴你设法解决你的问题:) –