Java registerreceiver中错误的解决方案
我正在使用以下代码注册一个接收器,但它显示了一个错误 语法错误或标记、构造函数放置错误 这是你的密码 此外,我希望即使在应用程序关闭时也能运行此功能 MyService.javaJava registerreceiver中错误的解决方案,java,android,android-service,Java,Android,Android Service,我正在使用以下代码注册一个接收器,但它显示了一个错误 语法错误或标记、构造函数放置错误 这是你的密码 此外,我希望即使在应用程序关闭时也能运行此功能 MyService.java onCreate()方法未命中右大括号}。格式化可以帮助您修复此类错误。你没有向我们充分展示你所做的一切。请按照以下步骤理解您必须首先定义您的接收器,然后再注册它: public class MyService extends Service { @Override public void on
onCreate()
方法未命中右大括号}
。格式化可以帮助您修复此类错误。你没有向我们充分展示你所做的一切。请按照以下步骤理解您必须首先定义您的接收器,然后再注册它:
public class MyService extends Service {
@Override
public void onCreate() {
super.onCreate();
if (!registered) {
MyBroadcast mybroadcast=new MyBroadcast();
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_SCREEN_ON));
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_SCREEN_OFF));
}
}
@Override
public IBinder onBind(Intent arg0) {
// TODO Auto-generated method stub
return null;
}
private class MyBroadcast extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
//TODO some code here
}
}
}
BroadcastReceiver mybroadcast = new BroadcastReceiver (){
@Override
public void onReceive(Context context, Intent intent) {
//define what you want the receiver to do when it is called
}
};
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_SCREEN_OFF));
然后注册:
BroadcastReceiver mybroadcast = new BroadcastReceiver (){
@Override
public void onReceive(Context context, Intent intent) {
//define what you want the receiver to do when it is called
}
};
registerReceiver(mybroadcast, new IntentFilter(Intent.ACTION_SCREEN_OFF));
在您的情况下,您希望放置两个IntentFilter,请执行以下操作:
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction((Intent.ACTION_SCREEN_OFF));
intentFilter.addAction((Intent.ACTION_SCREEN_ON));
registerReceiver(mybroadcast, intentFilter);
如果不注销接收器,您将收到新的异常或警告,同时您希望服务继续工作,因此请在onDestroy中注销接收器:
/*
* (non-Javadoc)
*
* @see android.app.Service#onDestroy()
*/
@Override
public void onDestroy() {
unregisterReceiver(mybroadcast);
super.onDestroy();
}
你定义了你的接收器吗?我想你缺少了一个大括号,比如@octopus says。在一个问题中缺少大括号。另一个是registerReceiver需要两个参数一个广播接收器第二个意图过滤器。在这种情况下,广播接收器参数缺少。