Finishing an Activity from a Broadcast Receiver

前端 未结 5 1760
夕颜
夕颜 2020-12-01 18:49

I have an Activity that I display as modeless when the phone rings (over the phone app). I would like to finish the Activity when either of the following events occur. The f

5条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-12-01 19:43

    write the code in your receiving broadcast now this will send another broad cast with the intent named "com.hello.action"

    Intent local = new Intent();
    local.setAction("com.hello.action");
    sendBroadcast(local);
    

    Now catch this intent in the activity with you want to finish it and then call the super.finish() on the onReceive method of your receiver like this

    public class fileNamefilter extends Activity {
    ArrayAdapter adapter;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        IntentFilter filter = new IntentFilter();
    
        filter.addAction("com.hello.action");
        registerReceiver(receiver, filter);
    
        }
    BroadcastReceiver receiver = new BroadcastReceiver() {
    
        @Override
        public void onReceive(Context context, Intent intent) {
            finish();
    
        }
    };
    
    public void finish() {
        super.finish();
    };
    }
    

    this will finish the activity

提交回复
热议问题