How to Define Callbacks in Android?

后端 未结 6 1092
太阳男子
太阳男子 2020-11-22 05:32

During the most recent Google IO, there was a presentation about implementing restful client applications. Unfortunately, it was only a high level discussion with no source

6条回答
  •  醉梦人生
    2020-11-22 05:57

    You can also use LocalBroadcast for this purpose. Here is a quick quide

    Create a broadcast receiver:

       LocalBroadcastManager.getInstance(this).registerReceiver(
                mMessageReceiver, new IntentFilter("speedExceeded"));
    
    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            Double currentSpeed = intent.getDoubleExtra("currentSpeed", 20);
            Double currentLatitude = intent.getDoubleExtra("latitude", 0);
            Double currentLongitude = intent.getDoubleExtra("longitude", 0);
            //  ... react to local broadcast message
        }
    

    This is how you can trigger it

    Intent intent = new Intent("speedExceeded");
    intent.putExtra("currentSpeed", currentSpeed);
    intent.putExtra("latitude", latitude);
    intent.putExtra("longitude", longitude);
    LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
    

    unRegister receiver in onPause:

    protected void onPause() {
      super.onPause();
      LocalBroadcastManager.getInstance(this).unregisterReceiver(mMessageReceiver);
    }
    

提交回复
热议问题