BroadcastReceiver开机启动和动态注册
来源:互联网 发布:网络电话卡app制作 编辑:程序博客网 时间:2024/06/07 11:08
1.Recerver的开机自动启动
主要是通过静态注册的方式来完成app的开机自动启动的.
创建一个MyReceiver
public class MyReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //定义需要开机启动的activity Intent mIntent = new Intent(context , MainActivity.class); //如果当前activity存在了,再次运行我们的应用程序,重新创建activity mIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //通过context启动activity context.startActivity(mIntent); }}
**在Mainactivity里面的定义自己随便
重点是在AndroidManifest.xml文件里面的静态注册**
<receiver android:name=".MyReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.intent.category.HOME"/> </intent-filter> </receiver> </application> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
里面的android.intent.action.BOOT_COMPLETED就好像是说”我已经开机啦”,然后我们才可以接收广播,实现app的操作.
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
这个是用户权限设置
2.动态注册(电池电量的显示)
**优点:自己可以控制什么时候调用广播
动态注册代码:**
protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.power_tx); //动态注册 registerReceiver(receiver ,new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); }
取消注册代码:
protected void onDestroy() { super.onDestroy(); //取消注册 unregisterReceiver(receiver); }
建立receiver对象获取当前电量显示
private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { //系统电量属性level,scale int level = intent.getIntExtra("level", 0); int scale = intent.getIntExtra("scale", 100); //打印出当前电量 mTextView.setText("当前电量为: " + (level * 100) / scale + "%"); } } };
电量显示测试代码
import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;import android.content.IntentFilter;import android.os.Bundle;import android.support.annotation.Nullable;import android.support.v7.app.AppCompatActivity;import android.widget.TextView;public class MainActivity extends AppCompatActivity { private TextView mTextView; private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if(Intent.ACTION_BATTERY_CHANGED.equals(intent.getAction())) { int level = intent.getIntExtra("level", 0); int scale = intent.getIntExtra("scale", 100); mTextView.setText("当前电量为: " + (level * 100) / scale + "%"); } } }; @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView) findViewById(R.id.power_tx); //动态注册 registerReceiver(receiver ,new IntentFilter(Intent.ACTION_BATTERY_CHANGED)); } @Override protected void onDestroy() { super.onDestroy(); //取消注册 unregisterReceiver(receiver); }}
阅读全文
0 0
- BroadcastReceiver开机启动和动态注册
- BroadcastReceiver(静态注册和动态注册)
- BroadcastReceiver静态和动态注册简单Demo
- BroadcastReceiver开机启动
- BroadcastReceiver注册与启动
- BroadcastReceiver随笔(动态注册和静态注册)
- BroadcastReceiver动态注册和静态注册哪个先执行
- android—BroadcastReceiver 静态注册和动态注册Context理解
- BroadCastReceiver 静态动态注册
- BroadCastReceiver 静态动态注册
- Android:动态注册BroadcastReceiver
- BroadcastReceiver 动态注册
- BroadcastReceiver组件 动态注册
- 通过BroadcastReceiver和 service 实现开机自动启动
- BroadcastReceiver+Service .开机启动服务
- Android BroadcastReceiver的注册方式静态和动态
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- BroadcastReceiver的两种注册方式(静态注册和动态注册)
- hdu1264 Counting Squares
- arm启动模式
- Unity入门学习 //01_Unity界面分布
- linux export指令
- 深入java虚拟机面试
- BroadcastReceiver开机启动和动态注册
- 流形学习(Manifold Learning)理解
- Python3之自动登录
- CCF试题——画图
- 【LeetCode】 Reverse Linked List 翻转链表 ( Uber,FB )
- 《大型门户网站是这样炼成的》 项目源码视频教程免费下载
- textarea 存储与显示 保持格式
- 【python爬虫01】使用requests库模拟登录知乎
- 文章标题