jinheminghehou 2015-08-04 03:17 采纳率: 0%
浏览 1667

利用广播在activity之间传递数据问题

我想利用广播在activity之间传递数据(不是直接用intent传递bundle),代码如下:
MainActivity:

public class MainActivity extends Activity{
private Button mButton;

@override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);
    mButton = (Button)findViewById(R.id.button);

    mButton.setOnClickListenner(new OnClickListener(){
        @override
        public void onClick(View v){
            startActivity(new Intent(MainActivity.this, SecondActivity.class));

            Intent broadIntent = new Intent("com.example.broadcasttest");
            broadIntent.putExtra("position", 3);

            sendBroadcast(broadIntent);
        }
    });
}

}

SecondActivity:

public class SecondActivity extends Activity{
private int position;

@override
protected void onCreate(Bundle savedInstanceState){
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_second);

    IntenFilter filter = new IntenFilter("com.example.broadcasttest");
    registerReceiver(receiver, filter);
}

BroadcastReceiver receiver = new BroadcastReceiver(){
    @override
    public void OnReceive(Context context, Intent intent){
        position = intent.getIntExtra("position", 0);
        Log.e("","position-->"+position);
    }
}

@override
protected void onDestroy(){
    super.OnDestroy();
    unRegisterReceiver(receiver);
}

}
广播接收不到,请问是什么问题,谢谢。

  • 写回答

4条回答 默认 最新

  • danielinbiti 2015-08-04 03:24
    关注
     startActivity(new Intent(MainActivity.this, SecondActivity.class));//SecondActivity还没初始化完成,这是异步过程,不是同步,执行下面语句的时候还没初始化完成
    
                Intent broadIntent = new Intent("com.example.broadcasttest");
                broadIntent.putExtra("position", 3);
    
                sendBroadcast(broadIntent);
    
    评论

报告相同问题?