当前位置: 代码迷 >> Android >> 自定义的静态广播没有作用怎么处理
  详细解决方案

自定义的静态广播没有作用怎么处理

热度:62   发布时间:2016-04-28 07:32:06.0
自定义的静态广播没有作用怎么办?

//在AndroidManifest.xml里注册静态广播
<receiver android:name=".TestBroadcast">
                <intent-filter>
                    <action android:name="com.lpj.test"/>
                </intent-filter>
</receiver>

//定义广播接收类
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里注册静态广播
<receiver android:name=".TestBroadcast">
                <intent-filter>
                    <action android:name="com.lpj.test"/>
                </intent-filter>
</receiver>

//定义广播接收类
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"));
  相关解决方案