android 开机自启动有三个步骤。
1. 首先实现一个BroadcastReceiver用来获取系统的 BOOT_COMPLETE 消息, 而该receiver又负责启动你的service或者activity.
写道
public class myReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if(action.equals("android.intent.action.BOOT_COMPLETED"))//与receiver的action android:name保持一致
{//判断是否开机启动
Intent i = new Intent(Intent.ACTION_RUN);
i.setClass(context, yourService.class);
context.startService(i); //在此做开启services
//Intent intent = new Intent(context, BabyCareMain.class);
// intent addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
// context.startActivity(intent );
};
//为了 在Context中有一个startActivity方法,Activity继承自Context,重载了startActivity方法。如果使用Activity的startActivity方法,不会有任何限制,而如果使用Context的startActivity方法的话,就需要开启一个新的task,遇到上面那个异常的,都是因为使用了Context的startActivity方法。解决办法是,加一个flag。 intent .addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
}
}
2.在Manifest文件中增加声明:
a. 加入使用权限声明:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
b. 加入receiver 注册声明:
<receiver android:name=".yourReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
3.搞定
分享到:
相关推荐
### Android开机启动流程详解 #### 一、概述 在探讨Android设备如何启动并准备好供用户使用的整个过程之前,我们先来简要回顾一下Android启动的基本流程。这一过程大致可以分为以下四个主要阶段: 1. **init进程...
### Android开机启动流程详解 #### 一、系统引导(Bootloader) **1. 源码位置** - `bootable/bootloader/*` **2. 说明** - 加电后,CPU首先执行的是bootloader程序。在此阶段,根据用户的不同操作,可以进入...
Android开机启动流程 Android开机启动流程是一个复杂的过程,涉及到多个组件和服务。下面是Android开机启动流程的详细解释: 1. 系统引导(bootloader) Android的开机流程始于引导程序bootloader。bootloader是...
Android开机启动流程详解 Android开机启动流程是指Android系统从加电到桌面出现的整个过程。这个过程可以分为八个阶段,每个阶段都有其特定的功能和作用。 阶段1:系统引导(bootloader) 在Android系统中,引导...
### Android开机启动流程详解 #### 一、系统引导(Bootloader) **1. 源码位置:** `bootable/bootloader/*` **2. 说明:** 当Android设备加电后,CPU首先执行的是Bootloader程序。Bootloader是整个启动过程中...
Android手机的开机启动流程是一个复杂的过程,涉及到多个组件和阶段。整个流程主要分为以下几个关键步骤: 1. **系统引导(Bootloader)** 当设备加电后,CPU首先执行Bootloader程序,Bootloader位于源码目录`...
在 Android 系统中,Launcher 应用程序的启动过程是由 ActivityManagerService 启动的,而 ActivityManagerService 和 PackageManagerService 一样,都是在开机时由 SystemServer 组件启动的。SystemServer 组件首先...
此外,系统服务的启动和初始化在 frameworks/base/services/java/com/android/server/am/ActivityManagerService.java 中有详细的实现。 对于开机动画的具体实现,我们需要查看硬件相关的HAL层代码,如 frameworks/...
这篇内容将详细讲解如何修改Android源码来改变默认的开机启动器,并确保其不可被用户停止,同时这个过程已经在模型8909上成功验证。 一、Android源码简介 Android是一个开源的操作系统,它的核心组件之一就是源码。...
此时,Activity Manager会通过设置变量`mBooting`,通知它的另一个线程发送`android.intent.action.BOOT_COMPLETED`广播,从而告知已注册的第三方程序在开机时自动启动。 #### 九、总结 通过上述分析,我们可以...
当SystemServer调用`ActivityManagerNative.getDefault().systemReady()`,ActivityManager会启动并通知另一线程,该线程负责处理开机自启动的第三方应用程序。这部分源码主要在`frameworks/base/services/java/...
1、startService开启服务以后,与activity就没有关联,不受影响,独立运行,需要stopService关闭,否则Activity移除栈后将一直运行(kill杀不死). 2、bindService开启服务以后,与activity存在关联,退出activity时...
**定义**:Intent是一种消息,用于启动Activity、Service或Broadcast Receiver。 **用途**: - **启动Activity/Service**:通过显式Intent指定目标。 - **发送广播**:通过隐式Intent发送广播。 **示例**:用户...
5. **System Server启动**:Android的核心服务进程System Server启动,初始化系统服务框架,如Activity Manager、Window Manager等。 6. **Zygote进程**:这是Android系统的父进程,负责孵化其他应用程序进程。 7. *...
Intent可以用来启动Activity或Service,或者发送广播。 3. **Layouts**: 布局是UI设计的基础,包括线性布局(LinearLayout)、相对布局(RelativeLayout)、网格布局(GridLayout)等,开发者需要熟练掌握以创建...
1. **AndroidManifest.xml**:这是每个Android应用的入口点,用于声明应用所需的权限、启动Activity、服务等。在这个手电筒应用中,可能会声明使用相机权限(用于闪光灯功能)和接收广播权限(用于报警功能)。 2. ...
对于需要长期运行的服务,可以考虑使用BroadcastReceiver监听系统的特定事件,如开机启动、网络状态变化等,以便在适当的时候启动或重启服务。 总结,掌握Android服务的使用是Android开发者必备技能之一。通过理解...
2. **Intent**: 用于在Android组件之间传递消息,比如启动Activity或服务,或者在Activity间传递数据。 3. **Layout**: 定义用户界面的XML文件,描述了屏幕上元素的布局和外观。常见的布局有LinearLayout、...