为什么我的服务没有在某些手机中重启甚至退回Service.START_STICKY?

时间:2016-03-04 10:37:33

标签: java android android-service android-internet

public class MyService extends Service {

    @Override
    public IBinder onBind(Intent arg0) {
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        super.onStartCommand(intent, flags, startId);

        Log.e("Service", "Running");

        return Service.START_STICKY;
    }
}

我的服务被杀死,并且在任务杀死体内手机后没有重启。但是,Facebook应用程序重新启动它在我的手机中的服务。为什么? 公共类StartMyServiceAtBootReceiver扩展了BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {
    if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) {

        Intent myService = new Intent(context, MyService.class);
        context.startService(myService);
    }
    else if(Intent.ACTION_USER_PRESENT.equals(intent.getAction())) {
        Intent myService = new Intent(context, MyService.class);
        context.startService(myService);
    }

    }

} 我通过使用接收器开始我的服务..

1 个答案:

答案 0 :(得分:0)

你没有在你的服务中做任何事情,如果你没有做任何事情,它显然会收集垃圾,

尝试

while(true) {

Log.d(TAG, "testing") 

}

在该服务onStartCommand函数中,应该始终保持运行

我还建议在操作系统终止服务时启动一个onStartCommand中的线程,自动重启服务。

    new Thread(new Runnable() {
        @Override
        public void run() {

            while (isRunning) {
             }
        }
    }).start();