【转】android如何实现开机自动启动Service或app

1.今天我们主要来探讨android怎么让一个service开机自动启动功能的实现。Android手机在启动的过程中会触发一个Standard Broadcast Action,名字叫android.intent.action.BOOT_COMPLETED(记得只会触发一次呀),在这里我们可以通过构建一个广播接收者来接收这个这个action.下面我就来简单写以下实现的步骤:

2. 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app。

  1.     import android.content.BroadcastReceiver;  
  2.     import android.content.Context;  
  3.     import android.content.Intent;  
  4.     import android.util.Log;  
  5.       
  6.     public class BootBroadcastReceiver extends BroadcastReceiver {  
  7.         //重写onReceive方法  
  8.         @Override  
  9.         public void onReceive(Context context, Intent intent) {  
  10.             //后边的XXX.class就是要启动的服务  
  11.             Intent service = new Intent(context,XXXclass);  
  12.             context.startService(service);  
  13.             Log.v("TAG", "开机自动服务自动启动.....");  
  14.            //启动应用,参数为需要自动启动的应用的包名
  15.     Intent intent = getPackageManager().getLaunchIntentForPackage(packageName);
  16.     context.startActivity(intent );        
  17.         }  
  18.       
  19.     }  

 

  1. 第二步:配置xml文件,在receiver接收这种添加intent-filter配置  
  2.      <receiver android:name="BootBroadcastReceiver">  
  3.                 <intent-filter>  
  4.                     <action android:name="android.intent.action.BOOT_COMPLETED"></action>  
  5.                     <category android:name="android.intent.category.LAUNCHER" />  
  6.                 </intent-filter>  
  7.             </receiver>  
  8. 第三步:添加权限 <uses-permission android: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了。

=====================================

原文链接:http://blog.csdn.net/weixingyan/article/details/7339420

时间: 2024-08-01 13:02:37

【转】android如何实现开机自动启动Service或app的相关文章

Android实现开机自动启动Service或app的方法_Android

本文实例讲述了Android实现开机自动启动Service或app的方法.分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app. import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; i

Android实现开机自动启动Service或app的方法

本文实例讲述了Android实现开机自动启动Service或app的方法.分享给大家供大家参考,具体如下: 第一步:首先创建一个广播接收者,重构其抽象方法 onReceive(Context context, Intent intent),在其中启动你想要启动的Service或app. import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; i

android应用实现开机自动启动方法_Android

原理:Android系统在开机的时候会发出一个广播.这样我们就可以接收这个广播,然后启动我们的应用.广播接收器必须在xml里面配置,因为xml里面配置的广播接收器  是不随着应用的退出而退出的. 广播接收器: package com.yangshidesign.boot; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; public c

Android中实现开机自动启动服务(service)实例_Android

最近在将 HevSocks5Client 移植到 Android 上了,在经过增加 signalfd 和 timerfd 相关的系统调用支持后,就可以直接使用 NDK 编译出 executable 了.直接的 native exectuable 在 Android 系统总还是不太方便用哦.还是做成一个 apk 吧,暂定只写一个 service 并开机自动启用,无 activity 的. Java 中调用 native 程序我选择使用 JNI 方式,直接在 JNI_OnLoad 方法中调用 pth

Android开发之设置开机自动启动的几种方法

Android开发之设置开机自动启动的几种方法 方法一: <!-- 开机启动 --> <receiver android:name=".AutoStartReceiver"> <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED"/> <category android:name="android.inten

Android应用如何开机自启动、自启动失败原因

本文主要介绍Android应用如何开机自启动.自启动失败的原因.adb命令发送BOOT_COMPLETED. 问题:应用程序是否可以在安装后自启动,没有ui的纯service应用如何启动?答案马上揭晓^_*1.Android应用如何开机自启动 (1).在AndroidManifest.xml中注册 AndroidManifest.xml中注册BOOT_COMPLETED Action 注意不仅要添加android.intent.action.BOOT_COMPLETED对应的action,还需要

php-fpm开机自动启动Shell脚本

  这篇文章主要介绍了php-fpm开机自动启动Shell脚本,本文脚本只是范例,其实你编译安装完成后,启动脚本已经生成在编译目录中,只需要复制出来用就可以了,需要的朋友可以参考下 网上有各种版本的php-fpm开机自动启动脚本, 其实你编译后源目录已经生成自动脚本.不用做任何修改即用. ? 1 cp {php-5.3.x-source-dir}/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm php-fpm开机自动启动脚本如下: ? 1 2 3 4 5

linux中mysql开机自动启动3种方法

  开机启动主要是把启动命令加入到linux的启动服务中去就可以实现了,具体给各位整理两段代码. 第一种手工简单加入即可实现开机自动启动mysql,后面是没事做写的一段shell代码. mysql设为linux服务 代码如下   cp /usr/local/mysql5/share/mysql/mysql.server /etc/init.d/mysqld chkconfig --add mysqld chkconfig --level 2345 mysqld on chown mysql:my

Centos6和Centos7开机自动启动服务方法

说下Centos6和Centos7开机自动启动服务简单方法,我是采用yum install直接安装的,所以和自编译的方法有所不同,在这里只说rpm包安装后的自启动服务的方法: Centos6:对于Centos6系统来说,直接使用chkconfig命令即可. 例如我们以nginx服务为例: #chkconfig --add nginx 添加nginx服务 #chkconfig nginx on 开机自启nginx服务 #chkconfig nginx off 关闭开机自启 #chkconfig -