sinfrancis 发表于 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。
 
 
页: [1]
查看完整版本: 教你开启自启动程序!