[英]onCreate() in service never called
我想实现一个处理屏幕开/关的服务。 为此,我创建了BootReceiver
,该启动在启动完成后以及在启动服务时被调用。
但是,从不调用OnCreate
,为什么?
当我打印程序的日志时,即使看到onStartCommand
的日志,也永远看不到onCreate
的日志。 这怎么可能? 请帮助我理解这一点。
这是一开始就调用的BootReceiver
:
public class BootReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Log.w("TAG", "BootReceiver");
Intent service = new Intent(context, ScreenListenerService.class);
context.startService(service);
}
}
这是服务:
public class ScreenListenerService extends Service {
public void OnCreate(){
super.onCreate();
Log.w("TAG", "ScreenListenerService---OnCreate ");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.w("TAG", "ScreenListenerService---onStart ");
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
}
和清单:
<service android:name=".ScreenListenerService"></service>
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE" />
</intent-filter>
</receiver>
更改:
public void OnCreate(){
super.onCreate();
Log.w("TAG", "ScreenListenerService---OnCreate ");
}
至:
public void onCreate(){
super.onCreate();
Log.w("TAG", "ScreenListenerService---OnCreate ");
}
Java区分大小写,因此OnCreate()
!= onCreate()
onCreate
拼写错误。 您正在使用OnCreate而不是onCreate
。 要摆脱这种错误,最好在每次重写方法时都使用@override
注解
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.