• android中的broadcastReceiver


    主要代码

    package com.bro;


    import android.app.Activity;
    import android.app.Dialog;
    import android.content.BroadcastReceiver;
    import android.content.Context;
    import android.content.Intent;
    import android.content.IntentFilter;
    import android.os.Bundle;
    import android.view.View;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.TextView;


    public class Broadcast extends Activity {

    private int intLevel;
    private int intScale;
    private Button mButton01;

        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            mButton01 = (Button) findViewById(R.id.myButton1);
            mButton01.setOnClickListener(new Button.OnClickListener(){


    @Override
    public void onClick(View v) {
    //注册一个系统 BroadcastReceiver, 作为访问电池计量之用
    registerReceiver(batInfoReceiver, new IntentFilter(
    Intent.ACTION_BATTERY_CHANGED));
    }
            
            });
        }
        
        private BroadcastReceiver batInfoReceiver = new BroadcastReceiver(){


    @Override
    public void onReceive(Context context, Intent intent) {
    String action = intent.getAction();
    //如果捕捉到的action是ACTION_BATTERY_CHANGED,
    //就运行onBatteryInfoReceiver()
    if(Intent.ACTION_BATTERY_CHANGED.equals(action)){
    intLevel = intent.getIntExtra("level", 0);
    intScale = intent.getIntExtra("scale", 100);
    onBatteryInfoReceiver(intLevel,intScale);
    }
    }
        
        };
        
        //捕捉到ACTION_BATTERY_CHANGED时要运行的method
        public void onBatteryInfoReceiver(int intLevel, int intScale){
        //create跳出的对话窗口
        final Dialog d = new Dialog(Broadcast.this);
        d.setTitle(R.string.str_dialog_title);
        d.setContentView(R.layout.mydialog);
        
        //创建一个背景模糊的Window,且将对话窗口放在前景
        Window window = d.getWindow();
        window.setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, 
        WindowManager.LayoutParams.FLAG_BLUR_BEHIND);
        
        //将取得的电池计量显示与Dialog中
        TextView mTextView02 = (TextView) d.findViewById(R.id.myTextView2);
        mTextView02.setText(getResources().getText(R.string.str_dialog_body) 
        + String.valueOf(intLevel * 100 / intScale) + "%");
        
        //设置返回主画面的按钮
        Button mButton02 = (Button) d.findViewById(R.id.myButton2);
        mButton02.setOnClickListener(new Button.OnClickListener(){


    @Override
    public void onClick(View v) {
    unregisterReceiver(batInfoReceiver);
    d.dismiss();
    }
        
        });
        d.show();
        }
    }

  • 相关阅读:
    Linux XOR.DDoS样本取证特征与清除
    利用Volatility对Linux内存取证分析-常用命令翻译
    【黑客免杀攻防】读书笔记14
    CertUtil.exe被利用来下载恶意软件
    利用rundll32执行程序的函数执行程序
    揭秘Patchwork APT攻击-恶意软件样本BADNEWS
    【CTF MISC】pyc文件反编译到Python源码-2017世安杯CTF writeup详解
    [ 总结 ] 删除通过find查找到的文件
    [ 脚本 ] RHEL6.x 及Centos6.x 初始化脚本
    [ 手记 ] 联想rd650服务器整列及系统安装
  • 原文地址:https://www.cnblogs.com/xingmeng/p/2398158.html
Copyright © 2020-2023  润新知