BroadCastReceiver

在接受廣播的activity裏面註冊,並在Ondestroy 裏面接觸註冊;
1.動態註冊
public class  B extends Activity{

private Button button;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_withdrawdetails);
        button = findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
               sendBroadcast(new Intent("自己設置的antion字符串"));

            }
        });
    }

}


public class  A extends Activity{

    private BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            finish();
        }
    };

     @Override
    protected void onResume() {
        super.onResume();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("自己設置的antion字符串”);
        registerReceiver(broadcastReceiver, intentFilter);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(broadcastReceiver);
    }

}

2.靜態註冊:

public class  B extends Activity{

private Button button;
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_withdrawdetails);
        button = findViewById(R.id.button);
button.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
               sendBroadcast(new Intent("自己設置的antion字符串"));

            }
        });
    }

}


public class  A extends Activity{
private MyReceiver receiver ;
     @Override
    protected void onResume() {
        super.onResume();
        receiver = new MyReceiver();
        IntentFilter intentFilter = new IntentFilter();
        intentFilter.addAction("自己設置的antion字符串”);
        registerReceiver(receiver, intentFilter);
    }
    @Override
    protected void onDestroy() {
        super.onDestroy();
        unregisterReceiver(receiver);
    }

}

public class MyReceiver extends BroadcastReceiver {

    public MyReceiver() {
        super();

    }

    @Override
    public void onReceive(Context context, Intent intent) {
        if (context instanceof Activity) {
            ((Activity) context).finish();
        }
    }
}

manifest:
<receiver android:name="com.yjz.construct.receiver.MyReceiver" >
            <intent-filter>
                <action android:name="com.yjz.closeactivity" />
            </intent-filter>
        </receiver>

發佈了32 篇原創文章 · 獲贊 15 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章