
Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫androidintentactionBOOT_COMPLETED(记得只会触发一次呀),在这里我们可以通过构建一个广播接收者来接收这个这个action下面我就来简单写以下实现的步骤:2 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app。 import androidcontentBroadcastReceiver; import androidcontentContext; import androidcontentIntent; import androidutilLog; public class BootBroadcastReceiver extends BroadcastReceiver { //重写onReceive方法 @Override public void onReceive(Context context, Intent intent) { //后边的XXXclass就是要启动的服务 Intent service = new Intent(context,XXXclass); contextstartService(service); Logv("TAG", "开机自动服务自动启动"); //启动应用,参数为需要自动启动的应用的包名 Intent intent = getPackageManager()getLaunchIntentForPackage(packageName); contextstartActivity(intent ); } } 第二步:配置xml文件,在receiver接收这种添加intent-filter配置 <receiver android:name="BootBroadcastReceiver"> <intent-filter> <action android:name="androidintentactionBOOT_COMPLETED"></action> <category android:name="androidintentcategoryLAUNCHER" /> </intent-filter> </receiver> 第三步:添加权限 <uses-permission android:name="androidpermissionRECEIVE_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 = pmgetLaunchIntentForPackage("packagename");intentaddFlags(IntentFLAG_ACTIVITY_NEW_TASK);//只要是调用系统的app,就要加上这个flag,否则会抛出异常
翻译自: >
以上就是关于android中怎么实现app的自动启动全部的内容,包括:android中怎么实现app的自动启动、安卓应用启动详解:从Zygote到你的Activity.onCreate()、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)