六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 22|回复: 0

教你开启自启动程序!

[复制链接]

升级  92.67%

55

主题

55

主题

55

主题

秀才

Rank: 2

积分
189
 楼主| 发表于 2013-1-28 19:19:30 | 显示全部楼层 |阅读模式
以下内容Sinfrancis版权所有,专注请注明来自  http://mdev.cc/dev
 
教你开启自启动程序! 在电脑的操作系统中都能在电脑开机后自启动一些程序,在Android平台也是可以的,那么我们如何才能做到这样的效果呢。
1、需要BroadcastReceiver
2、使用interfilter中的action:android.intent.action.BOOT_COMPLETED  //当启动手机系统启动完成后就启动此Receiver

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

一下是代码分析:

AndroidManifest.xml文件内容:
 
# <?xml version="1.0" encoding="utf-8"?># <manifest xmlns:android="http://schemas.android.com/apk/res/android"#       package="cc.androidos.sms"#       android:versionCode="1"#       android:versionName="1.0.0">#     <application android:icon="@drawable/icon" android:label="@string/app_name">#         <activity android:name=".StartUp"#                   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=".BootReceiver">#         <intent-filter>#          <action android:name="android.intent.action.BOOT_COMPLETED" />#         </intent-filter>#         </receiver>#         <service android:name=".StartService"/>#     </application># </manifest>  要启动的Activity类:
 
# package cc.androidos.sms;# import android.app.Activity;# import android.os.Bundle;# public class StartUp extends Activity {#     /** Called when the activity is first created. */#     @Override#     public void onCreate(Bundle savedInstanceState) {#         super.onCreate(savedInstanceState);#         setContentView(R.layout.main);#     }# }  Receiver类:系统启动后接受信息的类
 
# package cc.androidos.sms;# import android.app.Activity;# import android.app.PendingIntent;# import android.content.BroadcastReceiver;# import android.content.Context;# import android.content.Intent;# import android.net.Uri;# import android.util.Log;# public class BootReceiver extends BroadcastReceiver# {#     @Override#     public void onReceive( Context context, Intent intent )#     {#         if(intent.getAction().equals( Intent.ACTION_BOOT_COMPLETED )){#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Log.d( ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", "boot start................" );#             Intent i = new Intent(context,StartUp.class);#             i.setFlags( Intent.FLAG_ACTIVITY_NEW_TASK );#                                             //使用Receiver直接启动Activity时候需要加入此flag,否则系统会出现异常#             context.startActivity( i );#           #         }#     }# }  第一个运行完成后,关闭手机模拟器或者手机,然后启动手机操作系统,启动完成后StartUp Activity会自动运行。


流程:   系统启动完成-------》通过AndroidManifest.xml了解到系统启动完成后要启动BootReceiver -------》BootReceiver 启动StartUp Activity。
 
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表