2011-04-01 155 views
0

我正在尝试在我正在玩的小型Android应用程序中注册broadcastreceiver。我认为我正在做我应该做的事,但接收者仍然没有注册。它一定是我错过的小事,它让我发疯。Android广播接收器注册问题

public class CreateReceiver extends Activity 
{ 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
    }//end of onCreate 

    BroadcastReceiver myreceiver = new BroadcastReceiver() 
    { 
     @Override 
     public void onReceive(Context recvc, Intent recvi) 
     { 

     } 
    }; 

    @Override 
    public void onResume() 
    { 
     super.onResume(); 

     IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CAMERA_BUTTON); 

     if (this.registerReceiver(myreceiver, intentFilter) == null) 
     { 
      Toast.makeText(this, "Could not register receiver", Toast.LENGTH_LONG).show(); 
     }//end of if 
    }//end of onResume 

    @Override 
public void onPause() 
{ 
    this.unregisterReceiver(myreceiver); 
    super.onPause(); 
}//end of onPause 
}//end of CreateReceiver 

谁能告诉我我做错了什么?谢谢。

回答

0

我认为这个link会帮助你。您也可以从here

0

得到参考你必须从注册您的广播接收器内onCreate

public class CreateReceiver extends Activity 
{ 
    private IntentFilter intentFilter = new IntentFilter(Intent.ACTION_CAMERA_BUTTON); 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     registerReceiver(myreceiver , intentFilter); 
    }//end of onCreate 

    BroadcastReceiver myreceiver = new BroadcastReceiver() 
    { 
     @Override 
     public void onReceive(Context recvc, Intent recvi) 
     { 

     } 
    }; 

    ...