How to use registerReceiver method?

前端 未结 2 672
有刺的猬
有刺的猬 2020-12-04 23:24

I want to use dynamically registered BroadcastReceiver that has a reference to an Activity so it can modify its UI. I am using Context.regist

2条回答
  •  轻奢々
    轻奢々 (楼主)
    2020-12-05 00:28

    The whole code if somebody need it.

    void alarm(Context context, Calendar calendar) {
        AlarmManager alarmManager = (AlarmManager)context.getSystemService(ALARM_SERVICE);
    
        final String SOME_ACTION = "com.android.mytabs.MytabsActivity.AlarmReceiver";
        IntentFilter intentFilter = new IntentFilter(SOME_ACTION);
    
        AlarmReceiver mReceiver = new AlarmReceiver();
        context.registerReceiver(mReceiver, intentFilter);
    
        Intent anotherIntent = new Intent(SOME_ACTION);
        PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, anotherIntent, 0);
        alramManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
    
        Toast.makeText(context, "Added", Toast.LENGTH_LONG).show();
    }
    
    class AlarmReceiver extends BroadcastReceiver {     
        @Override
        public void onReceive(Context context, Intent arg1) {
            Toast.makeText(context, "Started", Toast.LENGTH_LONG).show();
        }
    }
    

提交回复
热议问题