android 广播broadcast

来源:互联网 发布:多功能助手软件 编辑:程序博客网 时间:2024/06/16 02:17

动态广播:

情景:

界面1开启定时器,3秒发送一次通知,通知别的注册的页面进行页面刷新

此demo共2页面


界面1:

private CountDownTimer countDownTimer;    private TextView tv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        tv = (TextView) findViewById(R.id.tv);        tv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Intent intent = new Intent(MainActivity.this,SecondActivity.class);                startActivity(intent);            }        });        countDownTimer = new CountDownTimer(99999999,3000) {            @Override            public void onTick(long millisUntilFinished) {                Log.d("MainActivity", "发送成功");                // 主要广播代码*************                Intent intent = new Intent();                intent.setAction("com.broadcast");                intent.putExtra("name", "" + millisUntilFinished);                sendBroadcast(intent);                // 主要广播代码***************                tv.setText("" + millisUntilFinished);            }            @Override            public void onFinish() {            }        };        countDownTimer.start();    }    // 注意在销毁时关闭计时器    @Override    protected void onDestroy() {        super.onDestroy();        countDownTimer.cancel();    }


界面2:

public class SecondActivity extends Activity {    private static TextView tv;    private InReceiver inReceiver;    @Override    protected void onCreate(@Nullable Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.secondlayout);        tv = (TextView) findViewById(R.id.tv);        inReceiver = new InReceiver();//实例化过滤器并设置要过滤的广播        IntentFilter intentFilter = new IntentFilter("com.broadcast");        //注册广播        registerReceiver(inReceiver,intentFilter);    }// 注意要取消注册    @Override    protected void onDestroy() {        super.onDestroy();        unregisterReceiver(inReceiver);    }    public class InReceiver extends BroadcastReceiver{        @Override        public void onReceive(Context context, Intent intent) {            String name = intent.getExtras().getString("name");            Toast.makeText(context, "接收到InReceiver:" + name, Toast.LENGTH_SHORT).show();            tv.setText(name + "");        }    }}


原创粉丝点击