源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

Android开机自启动程序详解

  • 时间:2022-10-16 08:35 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:Android开机自启动程序详解
[b]背景知识:[/b]当Android启动时,会发出一个系统广播,内容为ACTION_BOOT_COMPLETED,它的字 符串常量表示为 android.intent.action.BOOT_COMPLETED。只要在程序中“捕捉”到这个消息,再启动之 即可。记住,Android框架说:Don''t call me, I''ll call you back。我们要做的是做好接收这个消息的准备,而 [b]实现的手段就是实现一个BroadcastReceiver。 1、界面Activity,BootStartDemo.java文件 [/b]
[u]复制代码[/u] 代码如下:
public class BootStartDemo extends Activity {     /** Called when the activity is first created. */     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         // 无title         requestWindowFeature(Window.FEATURE_NO_TITLE);         // 全屏         getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,                 WindowManager.LayoutParams.FLAG_FULLSCREEN);         setContentView(R.layout.main);         new Thread() {             public void run() {                 try {                      /*  8秒后关闭页面*/                     sleep(10000);                 } catch (Exception e) {                     e.printStackTrace();                 } finally {                     finish(); // 关闭页面                 }             }         }.start();     } }
这段代码很简单,当Activity 启动时,会显示TextView,用它显示你想显示的字样,并且这个页面只显示10秒后消失。 [b]2、接收广播消息:BootBroadcastReceiver.java [/b]
[u]复制代码[/u] 代码如下:
public class BootBroadcastReceiver extends BroadcastReceiver {     static final String action_boot="android.intent.action.BOOT_COMPLETED";      @Override     public void onReceive(Context context, Intent intent) {         if (intent.getAction().equals(action_boot)){              Intent ootStartIntent=new Intent(context,BootStartDemo.class);              ootStartIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);              context.startActivity(ootStartIntent);          }     } }
该类继续自 BroadcastReceiver,覆载方法 onReceive 中,检测接收到的 Intent 是否符合 BOOT_COMPLETED,如果符合,则启动BootStartDemo这个Activity。 [b]3、配置文件 (1)AndroidManifest.xml : [/b]
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="utf-8"?> <!-- 这是一个开机自启动程序 --> <manifest xmlns:android="http://schemas.android.com/apk/res/android"       package="com.ajie.bootstartdemo"       android:versionCode="1"       android:versionName="1.0">     <application android:icon="@drawable/icon" android:label="@string/app_name">         <activity android:name=".BootStartDemo"                   android:label="@string/app_name">             <intent-filter>                 <action android:name="android.intent.action.MAIN" />                 <category android:name="android.intent.category.LAUNCHER" />             </intent-filter>         </activity>     <SPAN style="COLOR: #ff00ff"><receiver android:name=".BootBroadcastReceiver">          <intent-filter>          <action android:name="android.intent.action.BOOT_COMPLETED" />          <category android:name="android.intent.category.HOME" />         </intent-filter>      </receiver>  </SPAN>    </application> <SPAN style="COLOR: #ff00ff"><STRONG><uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission></STRONG>  </SPAN></manifest>
注意其中颜色标红那一部分,该节点向系统注册了一个 receiver,子节点 intent-filter 表示接收 android.intent.action.BOOT_COMPLETED 消息。并且还要配置android.permission.RECEIVE_BOOT_COMPLETED权限。 [b](2)Layout文件,main.xml [/b]
[u]复制代码[/u] 代码如下:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     android:orientation="vertical"     android:layout_width="fill_parent"     android:layout_height="fill_parent"     > <TextView       android:layout_width="fill_parent"     android:layout_height="fill_parent"     android:text="@string/boottext"     android:textColor="#5F2DD2"     android:background="#FFFFFF"     android:textSize="60px"     android:gravity="center_horizontal"     /> </LinearLayout>
完成后,编译出apk包,安装到模拟器或手机中。关机,重新开机,就会显示BootStartDemo这个Activity显示出来的页面。
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部