1.今天我们主要来探讨android怎么让一个service开机自动启动功能的实现。Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED(记得只会触发一次呀),在这里我们可以通过构建一个广播接收者来接收这个这个action.下面我就来简单写以下实现的步骤:
2. 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app。
-
importandroid.content.BroadcastReceiver;
-
importandroid.content.Context;
-
importandroid.content.Intent;
-
importandroid.util.Log;
-
-
publicclassBootBroadcastReceiverextendsBroadcastReceiver{
-
//重写onReceive方法
-
@Override
-
publicvoidonReceive(Contextcontext,Intentintent){
-
//后边的XXX.class就是要启动的服务
-
Intentservice=newIntent(context,XXXclass);
-
context.startService(service);
-
Log.v("TAG","开机自动服务自动启动.....");
-
//启动应用,参数为需要自动启动的应用的包名
-
Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
-
-
}
-
-
}
-
第二步:配置xml文件,在receiver接收这种添加intent-filter配置
-
<receiverandroid:name="BootBroadcastReceiver">
-
<intent-filter>
-
<actionandroid:name="android.intent.action.BOOT_COMPLETED"></action>
-
<categoryandroid:name="android.intent.category.LAUNCHER"/>
-
</intent-filter>
-
</receiver>
-
第三步:添加权限<uses-permissionandroid:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
启动APP:
因为做一个hotkey的项目,其中有几个快捷键需要启动系统自带的browser和email。因为刚刚开始学习android,在网上找到启动browser和email的方法都是利用ACTION_VIEW和SENDTO这样的intent去启动browser和email.问题来了:
1.如果是这样的话,启动browser需要自己预设一个网址,然后调用浏览器打开改网址。
2.启动email,也是需要自己设定一个账户地址,才能调用email去发送。
但是我只是需要打开程序,不想设定死这些data。所以想用应用程序本身的intentfilter中的action,不方便了。想到我想要的功能就只是简单代替了点击图标来启动程序,因此从laucher中入手应该可以。去调用onClick中的方法就行了。
最后实现如下:
PackageManager pm = getPackageManager();
Intent intent = pm.getLaunchIntentForPackage("packagename");
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//只要是调用系统的app,就要加上这个flag,否则会抛出异常。
startActivity(intent);
这样不用指定 action就可以实现调用任何一个自带app了。
分享到:
相关推荐
本文实例讲述了Android实现开机自动启动Service或app的方法。分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动...
【Android】开机自启动Service Demo 相关文章链接:http://blog.csdn.net/etzmico/article/details/7317695
android开机启动Activity/Service/App的三合一demo,本人写了一个小小demo,把如果开机自启动Activity、Service、APP写了下,欢迎下载。
Google在更新Android8.0后对Service的...导致目前想要启动服务必需实现服务的前台化,打开应用才能顺利启动service,否则在服务启动5秒后,系统将自动报错,会弹出一个提示窗口。实际测试得系统的app才能启动service。
【Android studio】service在app直接退出下,整体输出情况,实现开机自启动,一直后台运行
有的服务做的更绝,当用户在运行的服务中手动停止该服务以后,过了一段时间,服务又自动运行了。虽然,从用户的角度来说,这种方式比较流氓。但是,从程序员的角度来说,这是如何做到的呢?经过研究,我发现有一种...
android上怎样让一个Service开机自动启动 Posted on 2009-02-08 21:55 hk_king 阅读(168) 评论(0) 编辑 收藏 网摘 所属分类: 移动开发 转载出处:http://www.androidlab.cn/viewthread.php?tid=421&extra=page%3D1...
开机自动启动音乐播放service,在service意外停止的时候重新启动service。 需要注意的是开机启动action Intent.ACTION_BOOT_COMPLETED 需要申请权限:<uses-permission android:name="android.permission.RECEIVE_...
1、startService开启服务以后,与activity就没有关联,不受影响,独立运行,需要stopService关闭,否则Activity移除栈后将一直运行(kill杀不死). 2、bindService开启服务以后,与activity存在关联,退出activity时...
AndroidSideBar,本项目使用辅助功能 AccessibilityService ...实现的功能包括返回,主页,最近任务,启动某个 app,系统音量和亮度调节,开机启动,接收到自定义广播隐藏侧边栏等.本项目适配 Android 5.0 到 Android 9.0..zip
现在用有线连网看视频速度要比经过路由器快,用无线做热点,但无线设置热点后,关机或重启又要再重新开启热点,这样比较麻烦,增加上开机自启热点,这样比较方便了,连网速度快看视频不卡其它设备也可以通过盒子上网...
8.Android启动课程大纲 9.Android启动模式 10.init启动分析 11.走入init启动脚本 12.init脚本解析分析 13.init脚本执行和进程守护(1) 14.init脚本执行和进程守护(2) 15.android服务介绍与davlink启动 16.Zygote剖析...
本项目模拟实现该功能,即:开机自动启动的 Service 监听剪切板。复制之后,在屏幕顶部显示一个悬浮窗,显示剪贴板内容。点击悬浮窗,跳转到 Activity 页面显示。 兼容到 API level 9。 包含以下几个小功能点: ...
项目中遇到一个不想在开机时启动的app,所以利用了android中的两个方法:mActivityManager.forceStopPackage(packageName); mActivityManager.killBackgroundProcesses(packageName); 来杀死后台进程的demo,分享给...
增加了广播接收器,实现开机启动,添加了一个Service,该Service监听USB和HDMI接口,USB的监听注释掉了,需要的可以自己释放。 当你接上HDMI,该程序会自动启用,抽调HDMI,会自动退出App。 该App是横屏的,这是公司...
5、对一些系统广播监听(开机、锁屏、安装更新APP...)。/**Android 闹钟实例:1、杀不死的服务Service,只能在进程存在的情况下,降低系统回收几率。A:android:priority="1000"最高权限;B:onStartCommand返回值...
实现的功能包括返回,主页,最近任务,启动某个app,系统音量和亮度调节,开机启动,接收到自定义广播隐藏侧边栏等.本项目适配Android 5.0到Android 9.0. 软件开发设计:PHP、QT、应用软件开发、系统软件开发、移动应用...
APP启动速度非常重要,APP启动速度慢,可能会造成用户体验不良好,尤其是在最近用Android studio之后,如果长时间不打开app,启动速度就会特别的慢,下面我们一起探讨一下影响app启动速度的原因,以及解决方案。...