0

我正在创建一个应用程序,其中广播接收器类型的接收器将在单击按钮时以编程方式注册。即,当用户按下应用程序上的按钮时,接收者必须注册。再次单击另一个按钮时,将调用OnDestroy() 方法并取消注册接收器。

编码是这样的:

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但没有用。

我哪里错了?

提前致谢。:)

4

0 回答 0