http://blog.chinaunix.net/u/20947/showart_1945057.html

看了网上的几个例子,也做了一个系统启动后直接运行activity的小程序

代码贴在下面:

首先是从BroadcastReceiver派生出一个新类,用来监听系统启动后发出的广播消息android.intent.action.BOOT_COMPLETED

BootReceiver.java:

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.util.Log;

public class BootReceiver extends BroadcastReceiver {

public void onReceive(Context context, Intent intent) {


if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED"))
{
Log.d("BootReceiver", "system boot completed");
Intent newIntent = new Intent(context, FirstRun.class);
newIntent.setAction("android.intent.action.MAIN"); //MyActivity action defined in AndroidManifest.xml

newIntent.addCategory("android.intent.category.LAUNCHER");//MyActivity category defined in AndroidManifest.xml

newIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); //If activity is not launched in Activity environment, this flag is mandatory to set

context.startActivity(newIntent);

//if you want to start a service, follow below method:

/*******************************************************

Intent service = new Intent(yourService.ACTION_START);
service.setClass(context, yourService.class);
context.startService(service);

我改成:

Intent i = new Intent(AutoRun.class.getName());
i.setClass(context, AutoRun.class);

context.startService(i);


******************************************************/
}
}
}


接下来这个类就是监听到系统启动完毕后,我们要运行的activity.
FirstRun.java

import android.app.Activity;
import android.os.Bundle;

public class FirstRun extends Activity {

public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}
}


当然,我们还要改配置文件,需要注意的是,在manifest.xml中需要加上
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>

Manifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.service.prac"
android:versionCode="1"
android:versionName="1.0">

<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".BootReceiver"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</receiver>
<activity android:name=".FirstRun">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="3" />
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
</manifest>

更多相关文章

  1. ARCore1.2使用入门(一) ------ 将ARCore案例打包成Android/iOS运行
  2. android 深入解析AsyncTask
  3. android实现双击事件监听
  4. Android(安卓)EditText 实现监听实例
  5. Android(安卓)监听事件
  6. Android学习笔记——常用的基本UI组件及其常用属性值和相关方法
  7. 点击Android(安卓)SDK Manager时,SDK Manager没有显示
  8. android 获得一个应用程序的启动次数,运行时间等信息
  9. Android(安卓)最简单的应用间跳转小结

随机推荐

  1. android sharedpreferences工具类
  2. Android防止过快点击造成多次事件执行(防
  3. 电脑通过vnc控制android 手机
  4. 【Android 开源系列】之视频处理框架
  5. IntentFilter使用
  6. 一些关于RelativeLayout属性的用法
  7. Android 常用代码集合
  8. Android递归拷贝assets资源到指定目录
  9. Android属性之excludeFromRecents
  10. android NDK学习篇3之two-libs——使用(多