android broadcast broadcast

Dynamic broadcast:

scene:

Interface 1 starts the timer and sends a notification every 3 seconds to notify other registered pages to refresh the page

This demo has a total of 2 pages


Interface 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", "Send successfully");
                // Main broadcast code *************
                Intent intent = new Intent();
                intent.setAction("com.broadcast");
                intent.putExtra("name", "" + millisUntilFinished);
                sendBroadcast (intent);
                // Main broadcast code ****************
                tv.setText("" + millisUntilFinished);
            }

            @Override
            public void onFinish() {

            }
        };
        countDownTimer.start();
    }

    // Note that the timer is turned off on destroy
    @Override
    protected void onDestroy() {
        super.onDestroy ();
        countDownTimer.cancel();
    }


Interface 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();
//Instantiate the filter and set the broadcast to filter
        IntentFilter intentFilter = new IntentFilter("com.broadcast");
        // register broadcast
        registerReceiver(inReceiver,intentFilter);
    }

// Note to unregister
    @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 + "");
        }
    }

}


Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325732027&siteId=291194637