前言
如题目所言
一、产生的原因
startService()–>stopService()–>startService()时不开启服务;是有执行到onStartCommand的,问题在于传递的Intent的数据为null,于是无法跳转到服务
这里通过打日志可以看出关闭后重启时Intent的数值为null
二、解决方法
1.参考引用,感谢各位前辈!!
android 服务的onStartCommand()不执行的解决办法
BroadcastReceiver中onReceive()方法中需要注意什么
2.代码
2.1自定义一个广播类
public class JXLiveBroadcastReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
2.2在重新开启服务的地方添加
//实例化先
private JXLiveBroadcastReceiver liveBroadcastReceiver =
new JXLiveBroadcastReceiver();
//在要开启服务的地方添加,要跳转的服务,这时就会走服务中的onStartCommand方法了
Intent intentStartScreenCapture = new Intent(this,JXLiveScreenCapture.class);
liveBroadcastReceiver.onReceive(this,intentStartScreenCapture);
//使用广播要记得添加销毁
protected void onDestroy() {
super.onDestroy();
...
unregisterReceiver(liveBroadcastReceiver);
}
总结
关闭服务再开启服务时,传递的intent会出现null的情况,这时添加一个广播,传递intent,便能开启服务;但是问题在于:为什么传递的intent会是null?有知道的欢迎留言讨论,谢谢!!!