有些时候,应用需要在开机时就自动运行,例如某个自动从网上更新内容的后台service。怎样实现开机自动运行的应用?在撰写本文时,联想到高焕堂先生以“Don''t call me, I''ll call you back!”总结Android框架,真是说到点子上了。理解这句话的含义,许多有关Android平台上实现某种功能的问题,都能迎刃而解。 使用场景:手机开机后,自动运行程序,在屏幕上显示"Hello. I started!"字样。 背景知识:当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字符串常量表示为android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”到这个消息,再启动之即可。记住,Android框架说:Don''t call me, I''ll call you back。我们要做的是做好接收这个消息的准备,而实现的手段就是实现一个BroadcastReceiver。 代码解析: 1、界面Activity:SayHello.java
package com.ghstudio.BootStartDemo;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class SayHello extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv = new TextView(this);
tv.setText("Hello. I started!");
setContentView(tv);
}
}
这段代码很简单,当Activity启动时,创建一个TextView,用它显示"Hello. I started!"字样。 2、接收广播消息:BootBroadcastReceiver.java
package com.ghstudio.BootStartDemo;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
public class BootBroadcastReceiver extends BroadcastReceiver {
static final String ACTION = "android.intent.action.BOOT_COMPLETED";
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(ACTION)){
Intent sayHelloIntent=new Intent(context,SayHello.class);
sayHelloIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(sayHelloIntent);
}
}
}
该类派生自BroadcastReceiver,覆载方法onReceive中,检测接收到的Intent是否符合BOOT_COMPLETED,如果符合,则启动SayHello那个Activity。 3、配置文件:AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.ghstudio.BootStartDemo"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".SayHello"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<receiver android:name=".BootBroadcastReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>
注意其中粗体字那一部分,该节点向系统注册了一个receiver,子节点intent-filter表示接收android.intent.action.BOOT_COMPLETED消息。不要忘记配置android.permission.RECEIVE_BOOT_COMPLETED权限。 完成后,编译出apk包,安装到模拟器或手机中。关机,重新开机。
如果是系统进程的话,需要加入init配置文件来启动,随着linux启动而启动 |
相关推荐
标题中的"Delphi EX10 Android 实现开机自启动"是指使用Embarcadero Delphi XE10(也称为 RAD Studio XE10)开发的Android应用程序,目的是使其能够在设备启动时自动运行。这个过程涉及到Android系统的权限管理和...
本知识点主要讲解如何利用Android的广播接收器(BroadcastReceiver)来实现在手机开机时自动启动应用。 一、开机自启动原理 Android系统在启动完成后会发送一个名为ACTION_BOOT_COMPLETED的广播,任何注册了这个...
在Android系统中,开机自启动应用是指当设备完成启动过程后,系统会自动运行的一类应用程序。这些应用通常会在用户无须手动干预的情况下执行特定任务,例如同步数据、推送通知或者进行后台服务的初始化。"BOOT_...
在Android系统中,应用通常不会在开机时自动启动,除非开发者特别设置了这个功能。这个功能在某些场景下非常有用,比如天气更新应用、消息推送服务等。本篇将详细讲解如何实现Android应用的开机自动启动。 一、...
在Android系统中,让应用程序在设备开机后自动启动是一项常见的需求,这通常涉及到对系统服务、广播接收器等组件的理解和使用。以下将详细介绍如何利用Android的广播接收器实现开机自启动。 首先,我们需要理解什么...
3. **开机启动**:在Android系统中,开机启动指的是应用程序在设备启动完成后自动运行。 实现步骤: 1. **创建新项目**:打开Delphi,选择"New Mobile Application",创建一个新的Android项目。 2. **添加权限**:...
3. 在开发过程中,测试开机启动服务可能需要模拟设备重启,这通常在模拟器或支持快速重启功能的真机上进行。 通过以上步骤,你就可以创建一个能在Android设备开机时自动启动的服务了。在项目"ServiceBootDemo"中,...
在Android系统中,实现开机自启动服务是一项常见的需求,它使得应用能够在用户开机后自动运行特定的任务,如数据同步、消息推送等。本篇将详细讲解如何创建并配置开机自启动服务。 首先,我们需要理解`android....
开机自启动 WiFi-Adb 连接服务可以使得 Android 设备在开机后自动启动 WiFi-Adb 连接服务,从而实现无线连接和调试。 实现开机自启动 WiFi-Adb 连接服务需要三个步骤:编写脚本、编译脚本到系统中和配置 init.rc ...
在Android开发中,有时我们需要了解设备的开机启动时间以及开机后自动启动的应用程序。这篇内容将详细介绍如何通过Java代码在Android系统中实现这一目标。 首先,我们要关注的是“开机启动时间”的获取。在Linux...
在Android开发中,开机自启动服务是一个常见的需求,它允许应用程序在用户设备启动时自动运行,通常是用于后台任务、消息推送或系统维护等。本文将深入探讨如何在Android系统中实现开机自启动,并分析相关源码,同时...
总的来说,理解并正确使用`Service`和`BroadcastReceiver`是Android开发中的重要技能,它们可以帮助你实现各种后台功能。以上就是关于Android开机自动启动Service的一个基本例子,你可以根据实际需求对其进行扩展和...
这个项目是一个结合了开机自启动和WebView功能的Android应用,适合有一定Android开发基础的学习者进行实践,以加深对BroadcastReceiver和WebView的理解,同时也能学习到如何处理设备的开机事件以及实现全屏显示网页...
本篇文章将深入探讨如何在Eclipse环境下开发并实现一个Android应用,使其能够在设备开机时自动运行。 首先,我们需要了解Android系统的启动流程。Android系统在启动后会执行一系列的初始化操作,包括启动关键服务和...
这个DEMO应该包含了创建服务、广播接收器、权限配置以及相应的代码逻辑,学习并理解这个DEMO可以帮助你掌握如何在Android上实现后台运行和开机启动。在实际开发中,确保你的应用符合用户隐私和性能的最佳实践,提供...
在Android系统中,实现开机启动服务或应用是一个常见的需求,特别是在开发系统级或者需要后台持续运行的功能时。这个"android 开机启动DEMO"旨在帮助开发者解决如何在Android设备开机时自动启动应用程序的问题。让...
本文将深入探讨如何在Android中实现开机自启动Service。 首先,我们要明白Android系统的权限管理机制。由于安全原因,从Android 8.0(API级别26)开始,系统对应用的自启动行为进行了限制,不允许应用在没有用户...
在Android系统中,"开机自启动"是指应用程序在设备启动完成后自动运行的功能。这通常涉及到系统服务、广播接收器和启动器服务等组件。在Android的权限管理日益严格的今天,了解如何实现和管理开机自启动对于开发者和...
在Android系统中,后台保持运行并实现开机自动启动是许多应用程序的需求,比如闹钟应用、消息推送服务等。本教程将介绍如何通过源码实现这一功能。首先,我们需要理解Android系统的运行机制,尤其是关于服务...