莫为难
2015-12-14 11:09
采纳率: 0%
浏览 1.5k

新手学Android的广播,为什么接收不到广播数据,急急急急

我是动态注册的 ,代码如下:
public class LoginActivity extends Activity implements OnClickListener{
public static String ACTION= "ok";
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
button = (Button) findViewById(R.id.bt);
button.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.bt:
//跳转的同时发送广播数据
Intent intent1 = new Intent(this, Activity01.class);
startActivity(intent1);
Intent intent = new Intent(ACTION);
intent.putExtra("info", "hello");
sendBroadcast(intent);
break;
default:
break;
}
}
}

接收者如下:
public class Activity01 extends Activity {
private TextView tv;

private MyBroadcast myBroad;
public static String ACTION = "ok";
private String text;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity01);
    myBroad = new MyBroadcast();
    IntentFilter filter = new IntentFilter(ACTION);
    registerReceiver(myBroad, filter);
    tv = (TextView) findViewById(R.id.tv);
    tv.setText(text);
}

public class MyBroadcast extends BroadcastReceiver {

    @Override
    public void onReceive(Context context, Intent intent) {
        text = intent.getExtras().getString("info");
    }
}

@Override
protected void onDestroy() {
    // TODO Auto-generated method stub
    super.onDestroy();
    unregisterReceiver(myBroad);
}

}

为什么我的第二个Activity里接收不到数据呢?求高手指点。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

3条回答 默认 最新

  • 莫为难 2015-12-14 11:18

    有高手指点下吗?谢谢啦!!!

    评论
    解决 无用
    打赏 举报
  • 莫为难 2015-12-14 11:21

    有人吗,急急急急急急!

    评论
    解决 无用
    打赏 举报
  • 华仔仔仔 2015-12-14 12:36

    广播发过去的时候Activity01的接受者还没注册呢~

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题