问题描述
我想recive的BroadcastReceiver当我点击的main.xml按钮
** mainfest.xml **
<应用
机器人:图标=@可绘制/ ic_launcher
机器人:标签=@字符串/ APP_NAME
机器人:主题=@风格/ AppTheme>
<活动
机器人:名称=。MainActivity
机器人:标签=@字符串/ title_activity_main>
<意向滤光器>
<作用机器人:名称=android.intent.action.MAIN/>
<类机器人:名称=android.intent.category.LAUNCHER/>
&所述; /意图滤光器>
< /活性GT;
<接收机器人:名称=。boardCast>
<意向滤光器>
<作用机器人:名称=borad.cast/>
<类机器人:名称=android.intent.category.DEFAULT/>
&所述; /意图滤光器>
< /接收器>
< /用途>
上面的清单文件接收器与我们自己的行动,比如android.action注册=broad.cast
** mainActivty.java **
@覆盖
公共无效的onCreate(包savedInstanceState){
super.onCreate(savedInstanceState);
的setContentView(R.layout.activity_main);
按钮球¢=(按钮)findViewById(R.id.button1);
samll.setOnClickListener(新OnClickListener(){
公共无效的onClick(视图v){
// TODO自动生成方法存根
意图II =新的意图(getApplicationContext(),boardCast.class);
PendingIntent页= PendingIntent.getBroadcast(getApplicationContext(),0,二,0);
}
});
}
以上Activty类cantain按钮,当我点击该按钮的BroadcastReceiver应触发 boardcast.java
@覆盖
公共无效的onReceive(上下文的背景下,意图意图){
// TODO自动生成方法存根
如果(intent.getAction()。等于(borad.cast)){
Toast.makeText(背景下,样品,Toast.LENGTH_LONG).show();
}
}
摆脱挂起的意图,并做到这一点是这样的:
上的onclick您的按钮的点击事件调用:
公共无效的onClick(视图v){
// TODO自动生成方法存根
broadcastMsg(borad.cast);
}
});
//这里是函数的定义:
公共无效broadcastMsg(字符串intentName){
最终意向意图=新的意图(intentName);
sendBroadcast(意向);
}
I am trying to recive BroadcastReceiver when i click button on main.xml
**mainfest.xml**
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".boardCast">
<intent-filter>
<action android:name="borad.cast"/>
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
above manifest file receiver Register with our own action like android.action= "broad.cast"
**mainActivty.java**
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button samll = (Button)findViewById(R.id.button1);
samll.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// TODO Auto-generated method stub
Intent ii = new Intent(getApplicationContext(),boardCast.class);
PendingIntent pp = PendingIntent.getBroadcast(getApplicationContext(), 0, ii, 0);
}
});
}
above Activty class cantain button and when i click that button BroadcastReceiver should trigger boardcast.java
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
if(intent.getAction().equals("borad.cast")){
Toast.makeText(context, "sample", Toast.LENGTH_LONG).show();
}
}
get rid of the pending intent and do it this way:
on the onclick for your button's click event call:
public void onClick(View v) {
// TODO Auto-generated method stub
broadcastMsg("borad.cast");
}
});
// and here is the function definition:
public void broadcastMsg(String intentName) {
final Intent intent = new Intent(intentName);
sendBroadcast(intent);
}
这篇关于触发BroadcastReceiver的,当我点击按钮的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!