安卓学习Day08

静态广播 (为了让程序在未启动的情况下也能接收到广播)




标签intent-filter里的东西,相当是在监听系统一个叫"com.example.broadcasttest.MY_BROADCAST"的 action。如果接收到了 就让 .MyBroadcastReceiver 这个继承类 的onReceiver去完成接下来的逻辑操作

动态处理:
先IntentFilter intentFilter = new IntentFiltet();
intentFilter .addaction("XXX广播暗号");

再XXXReceiver 变量名 = new XXXReceiver();
记住:XXXReceiver这个是要继承BroadcastReceiver这个类
然后重写onRcveiver(Context context,Intent intent)方法
{
这里面的东西就是,接收到暗号广播要执行的内容;
}
最后: 进行监听器的注册
registerReceiver(networkChangeReceiver,intentFilter);
(注:registerReceiver()方法是属于父类Context的方法)

on Destory(){
unregisterReceiver(XX) ;
}

本地广播无法通过静态注册的方式来接收的
记住:动态注册的广播接收器一定都要取消注册才行
问题:MainActivity 最终继承Activity 还是Context ?

=====
弹开对话框的标准写法:
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle("Warning");
builder.setMessage("强制下线,请重新登录");
builder.setCancelable(false);
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

            }
        });
        builder.show();

=============
活动管理器:

public class ActivityCollector {
public static List activities = new ArrayList<>();
public static void addActivity(Activity activity){
activities.add(activity);
}
public static void removeActivity(Activity activity){
activities.remove(activity);
}
public static void finishAll(){
for(Activity activity :activities){
if(!activity.isFinishing()){
activity.finish();
}
}
activities.clear();
}
}

========
问题:
MainActivity 究竟是继承Activity 还是继承Context?

原文地址:https://www.cnblogs.com/czy16/p/8641632.html