Android开发怎么实现重启后唤醒功能

发布时间:2022-04-20 16:29:47 作者:iii
来源:亿速云 阅读:166

这篇文章主要讲解了“Android开发怎么实现重启后唤醒功能”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Android开发怎么实现重启后唤醒功能”吧!

设备重启后,那些持续运行的应用通常也需要重启。通过监听带有BOOT_COMPLETED操作的broadcast intent,可获知设备是否已完成启动。只要打开设备,系统就会发送一个BOOT_COMPLETEDbroadcast intent。要想监听它,可以创建并登记一个standalone broadcast receiver。

standalone receiver是一个在manifest配置文件中声明的broadcast receiver。即便应用进程已消亡,standalone receiver也可以被激活。(稍后还会学习到可以同fragment或activity的生命周期绑定的dynamic receiver。)

与服务和activity一样,broadcast receiver必须在系统中登记后才能发挥作用。如果不登记,系统就不知道该向哪里发送intent。自然,broadcast receiver的onReceive(...)方法也就得不到预定的调用了。

要登记broadcast receiver,首先要创建它。创建一个StartupReceiver新类,继承android.content.BroadcastReceiver类,代码如下所示。

第一个broadcast receiver(StartupReceiver.java)

public class StartupReceiver extends BroadcastReceiver{

private static final String TAG = "StartupReceiver";

@Override

public void onReceive(Context context, Intent intent) {

Log.i(TAG, "Received broadcast intent: " + intent.getAction());

}

}

与服务和activity一样,broadcast receiver是接收intent的组件。当有intent发送给StartupReceiver时,它的onReceive(...)方法会被调用。打开 AndroidManifest.xml配置文件,参照如下代码登记上StartupReceiver。

在manifest文件中添加receiver(AndroidManifest.xml)

Android开发怎么实现重启后唤醒功能

登记响应隐式intent的standalone receiver和登记服务或activity差不多。我们使用receiver标签并在其中包含相应的intent-filter。StartupReceiver会监听BOOT_COMPLETED操作,而该操作也需要配置使用权限。因此,还需要添加一个相应的uses-permission标签。

在配置文件中完成声明后,即使应用并未运行,只要有匹配的broadcast intent发来,broadcast receiver就会醒来接收。一收到intent,broadcast receiver的onReceive(Context, Intent)方法即开始运行,随后会被销毁(如下图所示)。

Android开发怎么实现重启后唤醒功能

设备重启后,StartupReceiver的onReceive(...)方法会被调用吗?现在就来验证。首先,运行更新版PhotoGallery应用。

然后,关闭设备。如果是物理设备,直接按电源键关机。如果是模拟器,最简单的方法是直接退出模拟器应用。

打开设备。如果是物理设备,直接按电源键开机。如果是模拟器,要么重新运行应用,要么使用AVD Manager启动应用,但要保证使用的是刚关掉的那个模拟器。

现在,选择Tools → Android → Android Device Monitor菜单项打开Android Device Monitor。(KitKat之前,Android Device Monitor常被称为Dalvik Debug Monitor Server或DDMS。Dalvik是Android上的运行时系统。自KitKat开始,Google又引入了ART(Android Runtime)。到了Lollipop,就只剩下ART可用了。虽然现在已改名为Android Device Monitor,但旧的名字仍时有耳闻。)

点击Android Device Monitor的Devices选项页中的设备。(如果看不到设备列表,请尝试插拔USB设备或重启模拟器。)

在Android Device Monitor窗口中,以Received broadcast intent关键字搜索LogCat输出(如下图所示)。

Android开发怎么实现重启后唤醒功能

可以在LogCat中看到表明receiver运行的日志。但如果在设备标签页查看设备,则可能看不到任何PhotoGallery进程。这是因为进程在运行broadcast receiver之后,就随即消亡了。

感谢各位的阅读,以上就是“Android开发怎么实现重启后唤醒功能”的内容了,经过本文的学习后,相信大家对Android开发怎么实现重启后唤醒功能这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是亿速云,小编将为大家推送更多相关知识点的文章,欢迎关注!

推荐阅读:
  1. Macbook pro 休眠唤醒后,wifi 无法连接
  2. 修改iptables后重启返回错误

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

android

上一篇:怎么通过elevation和Z值实现Android阴影绘制效果

下一篇:Android开发中怎么实现音频的播放

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》