`
iaiai
  • 浏览: 2150389 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Android 控件之Service并开机自动启动

阅读更多
怎样让一个Service开机自动启动

AndroidManifest.xml配置文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
	package="com.iaiai.activity" android:versionCode="1"
	android:versionName="1.0">
	<uses-sdk android:minSdkVersion="8" />
	<application android:icon="@drawable/icon" android:label="@string/app_name">
		<activity android:name=".IaiaiActivity" android:theme="@android:style/Theme.Dialog">
			<intent-filter>
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</activity>
		<receiver android:name=".IaiaiReceiver" android:permission="android.permission.RECEIVE_BOOT_COMPLETED">
			<intent-filter>
				<action android:name="android.intent.action.BOOT_COMPLETED" />
				<category android:name="android.intent.category.LAUNCHER" />
			</intent-filter>
		</receiver>
		<service android:name=".IaiaiService" android:enabled="true" />
	</application>
	
	<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
</manifest>


main.xml布局文件:
<?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">
	<Button android:layout_width="fill_parent"
		android:layout_height="wrap_content" android:id="@+id/button"
		android:text="开机自动启动" />
</LinearLayout>


IaiaiActivity.java类:
package com.iaiai.activity;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.content.ServiceConnection;
import android.os.Bundle;
import android.os.IBinder;

/**
 * 
 * <p>
 * Title: IaiaiActivity.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-6-26
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class IaiaiActivity extends Activity {

	private IaiaiService iaiaiService;

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

		Intent intent = new Intent(this, IaiaiService.class);
		intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

		startService(intent);
		stopService(intent);
	}

	private ServiceConnection serviecConnection = new ServiceConnection() {
		public void onServiceConnected(ComponentName classname, IBinder service) {
			iaiaiService = ((IaiaiService.IaiaiBinder) (service)).getService();
		}

		public void onServiceDisconnected(ComponentName classname) {
			iaiaiService = null;
		}
	};

}


IaiaiService.java类:
package com.iaiai.activity;

import android.app.Service;
import android.content.Intent;
import android.os.Binder;
import android.os.IBinder;
import android.util.Log;

/**
 * 
 * <p>
 * Title: IaiaiService.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-6-27
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class IaiaiService extends Service {

	@Override
	public IBinder onBind(Intent intent) {
		Log.i("**************", "onBind");
		return null;
	}

	@Override
	public void onCreate() {
		Log.i("**************", "onCreate");
	}

	@Override
	public void onDestroy() {
		Log.i("**************", "onDestroy");
	}

	@Override
	public void onStart(Intent intent, int startId) {
		Log.i("**************", "onStart");
	}

	@Override
	public boolean onUnbind(Intent intent) {
		Log.i("**************", "onUnbind");
		return super.onUnbind(intent);
	}

	public class IaiaiBinder extends Binder {
		public IaiaiService getService() {
			return IaiaiService.this;
		}
	}

}


IaiaiReceiver.java类:
package com.iaiai.activity;

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

/**
 * 
 * <p>
 * Title: IaiaiReceiver.java
 * </p>
 * <p>
 * E-Mail: 176291935@qq.com
 * </p>
 * <p>
 * QQ: 176291935
 * </p>
 * <p>
 * Http: iaiai.iteye.com
 * </p>
 * <p>
 * Create time: 2011-6-27
 * </p>
 * 
 * @author 丸子
 * @version 0.0.1
 */
public class IaiaiReceiver extends BroadcastReceiver {

	@Override
	public void onReceive(Context context, Intent intent) {
		Intent serviceIntent = new Intent(context, IaiaiService.class);
		context.startService(serviceIntent);

		Intent activityIntent = new Intent(context, IaiaiActivity.class);
		activityIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
		context.startActivity(activityIntent);
	}

}


运行结果:
  • 大小: 26 KB
分享到:
评论

相关推荐

    android服务自启动Service以及BroadcastReceiver和Notification

    android service Notification ...安装的服务开机自启动,service定时的打印消息,消息同时显示在通知栏,窗体界面的跳转,自定义控件的开发。系统广播,定时广播,轮询广播等。BroadcastReceiver轮询广播

    Google Android SDK开发范例大全(第3版) 1/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Google Android SDK开发范例大全(第3版) 4/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Google Android SDK开发范例大全(第3版) 3/5

    全书共分11章,主要以范例集的方式来讲述Android的知识点,详细介绍了开发Android的人机交互界面、Android常用的开发控件、Android手机收发短信等通信服务、开发Android手机的自动服务功能和娱乐多媒体功能以及整合...

    Android开发应用实战详解源代码

    2.2.3 service介绍 2.2.4 broadcastintentreceiver 2.2.5 contentprovider 2.3 android应用项目文件组成 2.3.1 androidmanifest.xml文件 2.3.2 src目录 2.3.3 常量的定义文件 2.4 程序生命周期 2.4.1 android周期 ...

    Google Android SDK开发范例大全(PDF高清完整版1)(4-1)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    Google Android SDK开发范例大全(PDF完整版4)(4-4)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    2010年谢彦的android笔记

    原创2010年android文档的整理打包的pdf档(含目录) 文档内容不能复制, 介意者请慎下. 大部分内容可在http://blog.csdn.net/xieyan0811上看到 文档目录如下 1 系统配置 1 1.1 建立SDK开发环境 2 1.2 Android源码的...

    android开发实例大全_王东华

    实例039: 自定义Android控件实现单选 按钮 100 实例040: 使用自定义控件在屏幕中绘 制一条虚线 104 实例041: 在屏幕中实现手风琴效果 106 第3章 自动化服务实例集锦 109 实例042: 自动获取手机屏幕的分辨率 ...

    Google Android SDK开发范例大全(PDF高清完整版3)(4-3)

    Google Android SDK开发范例大全(完整版)共4个分卷 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 Android初体验 2.1...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android 开机启动 |--android 挪动dialog的位置 |--android 控制对话框位置 |--android 根据uri获取路径 |--android 模拟器错误 |--android 横竖屏切换 |--android 获取mac地址 |--android 获取sd卡状态 |--...

    Google Android SDK开发范例大全的目录

    6.6 手机拨接状态——PhoneStateListener之onCallStateChanged 6.7 有来电,发送邮件通知——PhoneStateListener与ACTION_SEND 6.8 存储卡剩余多少容量——Environment加StatFs 6.9 访问本机内存与存储卡——File的...

    Google Android SDK开发范例大全(完整版附部分源码).pdf

    Google Android SDK开发范例大全(完整版) 包含部分书中源码 目录 第1章 了解.深入.动手做. 1.1 红透半边天的Android 1.2 本书目的及涵盖范例范围 1.3 如何阅读本书 1.4 使用本书范例 1.5 参考网站 第2章 ...

    android笔记.rar

    android笔记.doc android笔记.pdf 1 系统配置... ..1 1.1 建立SDK开发环境... ...2 1.2 Android源码的编译 ... .6 1.3 编译在G1 上运行的android 2.1(eclair)代码 ... ..9 1.4 编译在G1 上运行的android 2.2(froyo)...

    Android典型技术模块开发详解

    5.3.2 开机启动程序 5.3.3 电量监测 5.4 本章小结 第6章 Service(服务) 6.1 生命周期 6.2 Binder机制 6.3 AIDL基础 6.3.1 定义AIDL接口 6.3.2 使用AIDL开发程序的一般步骤 6.3.3 实现远程控制计数器示例 6.4 AIDL...

    Android开发资料合集-World版!

    9.9、程序的开机启动 201 9.10、动态START页面 208 9.11、彻底退出当前程序 212 9.12、获取应用程序的名称,包名,版本号和图标 212 9.13、调用ANDROID INSTALLER 安装和卸载程序 215 9.14、后台监控应用程序包的...

Global site tag (gtag.js) - Google Analytics