我想将值从MainActivity类传递给BroadCast Receiver Class。这个编码是在MainActivity中完成的。我必须在清单文件中提及这个动作(" android.intent.action.AIRPLANE_MODE")?
public void broadcastIntent(View v){
if(togglebutton.isChecked()){
Intent i=new Intent("android.intent.action.AIRPLANE_MODE");
String x="heyo";
i.putExtra("xx", x);
sendBroadcast(i);
}else{
}
Class x extending BroadcastReceiver....
public void onReceive(Context context, Intent in) {
// TODO Auto-generated method stub
in.getExtras();
String action=in.getAction();
if(action.equals("android.intent.action.AIRPLANE_MODE")){
String u=in.getExtras().get("xx").toString();
Toast.makeText(context,"hi " +u, Toast.LENGTH_LONG).show();
}else{
Toast.makeText(context,"Intent detected", Toast.LENGTH_LONG).show();
}
}
答案 0 :(得分:1)
使用共享偏好设置。关于这一点,有一些tutorial。
public void broadcastIntent(View v){
Activity activity = (Activity) view.getContext()
SharedPreferences sharedPref = activity.getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString("xx",x);
editor.commit();
Intent i=new Intent("android.intent.action.AIRPLANE_MODE");
sendBroadcast(i);
}
然后是你的broadcastReceiver代码。
Class x extending BroadcastReceiver....
public void onReceive(Context context, Intent in) {
SharedPreferences sharedPref = context.getPreferences(Context.MODE_PRIVATE);
String xx = sharedPref.getString("xx", "");
}
答案 1 :(得分:0)
在你的清单中注册你的BroadcastReceiver,然后你就去了。
答案 2 :(得分:0)
您需要在AndroidManifest.xml中定义BroadcastReceiver。 有关元素的文档,请参阅here。
示例:
<receiver android:name=".YourReceiver">
<intent-filter>
<action android:name="com.example.intent.action.MY_ACTION" />
</intent-filter>
</receiver>
注意:我不知道你到底想要达到的目的,但android.intent.action.AIRPLANE_MODE动作可能不是你想要自己发出的正确动作。