• 安卓学习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?

  • 相关阅读:
    你人生中的那口井挖了没有?
    Stream接口
    console (控制台)
    assert.fail()
    assert.strictEqual()
    assert.equal()
    assert.ifError()
    assert.ok()
    nodejs assert 模块
    闭包
  • 原文地址:https://www.cnblogs.com/czy16/p/8641632.html
Copyright © 2020-2023  润新知