從一個 Activity 關閉另一個 Activity, 使用廣播

BaseActivity 中這樣寫:

public class BaseActivity extends AppCompatActivity {

    private FinishActivityReceiver mReceiver;
    private String simpleName;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /*
        * 關閉Activity的廣播
        * */
        simpleName = getClass().getSimpleName();
        mReceiver = new FinishActivityReceiver();
        registerFinishReceiver();

    }

    private void registerFinishReceiver() {
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction(simpleName);
        registerReceiver(mReceiver, intentFilter);
    }

    private class FinishActivityReceiver extends BroadcastReceiver {
        @Override
        public void onReceive(Context context, Intent intent) {
            //需要關閉頁面的action
            if (simpleName.equals(intent.getAction())) {
                BaseActivity.this.finish();
            }
        }
    }

要關閉某個Activity的時候使用如下方法:

Intent intent = new Intent("xxActivity");
sendBroadcast(intent);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章