自定义的静态广播没有作用怎么办?
//在AndroidManifest.xml里注册静态广播
//定义广播接收类
public class TestBroadcast extends BroadcastReceiver {
public static final String RECEIVER = "com.lpj.test";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(RECEIVER)){
Log.i("BroadcastTest", "Broadcast Start!");
Toast.makeText(context, "Broadcast Start!",
Toast.LENGTH_LONG).show();
}
}
}
//在主界面里发送广播
public class replyer extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_replyer);
this.findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendBroadcast(new Intent("com.lpj.test"));
}
});
}
}
结果没有任何反应(既不弹出Toast,logcat里也没东西),4.2系统,真机和模拟器都测试过
广播
Broadcast
android
broadcastreceiver
分享到:
------解决方案--------------------
sendBroadcast(new Intent("com.lpj.test"));
写错了。
这样写
sendBroadcast(new Intent(this,TestBroadcast.class));
------解决方案--------------------
引用://在AndroidManifest.xml里注册静态广播
//定义广播接收类
public class TestBroadcast extends BroadcastReceiver {
public static final String RECEIVER = "com.lpj.test";
@Override
public void onReceive(Context context, Intent intent) {
if(intent.getAction().equals(RECEIVER)){
Log.i("BroadcastTest", "Broadcast Start!");
Toast.makeText(context, "Broadcast Start!",
Toast.LENGTH_LONG).show();
}
}
}
//在主界面里发送广播
public class replyer extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_replyer);
this.findViewById(R.id.button).setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
sendBroadcast(new Intent("com.lpj.test"));