Android 在按钮上注册接收器单击
我正在创建一个应用程序,其中一个类型为broadcastReceiver的接收器将通过单击按钮以编程方式注册。i、 例如,当用户按下应用程序上的按钮时,接收器必须注册。再次单击另一个按钮时,将调用OnDestroy()方法并注销接收器 编码如下所示:Android 在按钮上注册接收器单击,android,broadcastreceiver,intentfilter,Android,Broadcastreceiver,Intentfilter,我正在创建一个应用程序,其中一个类型为broadcastReceiver的接收器将通过单击按钮以编程方式注册。i、 例如,当用户按下应用程序上的按钮时,接收器必须注册。再次单击另一个按钮时,将调用OnDestroy()方法并注销接收器 编码如下所示: public class MainActivity extends Activity { private BroadcastReceiver receiver=new BroadcastReceiver(){ @Override
public class MainActivity extends Activity {
private BroadcastReceiver receiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent)
{//Perform tasks here}
};
private IntentFilter filter = new IntentFilter("android.intent.action.CALL");
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final Button button = (Button)findViewById(R.id.b1);
button.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
registerReceiver(receiver,filter);
}
});
final Button buttonEnd = (Button)findViewById(R.id.b2);
buttonEnd.setOnClickListener(new View.OnClickListener(){
public void onClick(View v) {
onDestroy();
finish();
}
});
}
@Override
protected void onDestroy(){
super.onDestroy();
unregisterReceiver(receiver);
}
但是接收方没有注册,这会在注销时引发异常
注:
我甚至尝试了IntentFilter操作作为android.intent.action.MAIN,但没有用
我错在哪里
提前感谢。:) 这并不能回答为什么接收器没有注册,但不直接调用
onDestroy()
。通过调用finish()。另外,发布显示异常的日志猫。引发了哪种异常?想想看,android.intent.action.CALL和android.intent.action.MAIN都不是你可以用接收器收听的东西。它们是Intent
操作,用于启动另一个活动
,您不想执行该操作。谢谢Squonk。我还必须做什么??抛出invalidArgumentException。