android 开机自动启动你的应用程序

在电脑的操作系统中都能在电脑开机后自启动一些程序,在Android平台也是可以的,那么我们如何才能做到这 样的效果呢。
1、需要BroadcastReceiver
2、使用interfilter 中的action:android.intent.action.BOOT_COMPLETED //当启动手机系统启动完成后就启动此Receiver

功能:当手机系统启动完成后,直接启动某个程序或者Activity,这里直接启动某个程序

一下是代码分析:

AndroidManifest.xml文件内容:
Xml代码
  1. # <?xml version="1.0" encoding="utf-8"?>
  2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  3. package="cc.androidos.sms"
  4. android:versionCode="1"
  5. android:versionName="1.0.0">
  6. <application android:icon="@drawable/icon" android:label="@string/app_name">
  7. <activity android:name=".StartUp"
  8. android:label="@string/app_name">
  9. <intent-filter>
  10. <action android:name="android.intent.action.MAIN" />
  11. <category android:name="android.intent.category.LAUNCHER" />
  12. </intent-filter>
  13. </activity>
  14. #
  15. <receiver android:name=".BootReceiver">
  16. <intent-filter>
  17. <action android:name="android.intent.action.BOOT_COMPLETED" />
  18. </intent-filter>
  19. </receiver>
  20. <service android:name=".StartService"/>
  21. </application>
  22. </manifest>

要启动的Activity类:

Java代码
  1. # package cc.androidos.sms;
  2. import android.app.Activity;
  3. import android.os.Bundle;
  4. public class StartUp extends Activity {
  5. #
  6. @Override
  7. public void onCreate(Bundle savedInstanceState) {
  8. super.onCreate(savedInstanceState);
  9. # setContentView(R.layout.main);
  10. # }
  11. # }

Receiver类:系统启动后接受信息的类

Java代码
  1. # package cc.androidos.sms;
  2. import android.app.Activity;
  3. import android.app.PendingIntent;
  4. import android.content.BroadcastReceiver;
  5. import android.content.Context;
  6. import android.content.Intent;
  7. import android.net.Uri;
  8. import android.util.Log;
  9. public class BootReceiver extends BroadcastReceiver
  10. # {
  11. @Override
  12. public void onReceive( Context context, Intent intent )
  13. # {
  14. if(intent.getAction().equals( Intent.ACTION_BOOT_COMPLETED )){
  15. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  16. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  17. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  18. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  19. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  20. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  21. # Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );
  22. # Intent i = new Intent(context,StartUp.class);
  23. # i.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );
  24. //使用Receiver直接启动Activity时候需要加入此flag,否则系统会出现异常
  25. # context.startActivity( i );
  26. #
  27. # }
  28. # }
  29. # }

第一个运行完成后,关闭手机模拟器或者手机,然后启动手机操作系统,启动完成后StartUp Activity会自动运行。


流程: 系统启动完成-------》通过AndroidManifest.xml了解到系统启动完成后要启动BootReceiver -------》BootReceiver 启动StartUp Activity。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值