`
iaiai
  • 浏览: 2197224 次
  • 性别: 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
分享到:
评论

相关推荐

    开机自启动并全屏浏览指定网址的安卓APP开发

    标题中的“开机自启动并全屏浏览指定网址的安卓APP开发”涉及到的是Android应用程序的开发技术,特别是关于启动服务(Boot Receiver)和Webview的使用。在这个项目中,开发者将创建一个Android应用,该应用在设备...

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

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

    AndroidSideBar,本项目使用辅助功能 AccessibilityService 实现 Android 侧边栏悬浮窗效果.实现的功能包括返回,主页,最近任务,启动某个 app,系统音量和亮度调节,开机启动,接收到自定义广播隐藏侧边栏等.本项目适配 Android 5.0 到 Android 9.0..zip

    这个悬浮窗提供了多种实用功能,包括但不限于快速返回、打开主屏幕、切换到最近使用的应用、启动指定的应用、调整系统音量和屏幕亮度,并且支持设备开机自动启动以及在接收到特定自定义广播时自动隐藏侧边栏。...

    Android服务Service_详解

    服务(Service)作为Android系统四大组件之一,在没有用户界面的情况下也能在后台执行长时间运行的操作,比如下载数据或者播放音乐。理解Service的生命周期对于合理地管理资源和避免内存泄漏至关重要。 - **创建...

    android 4大组件

    Service有两种启动方式:startService()用于执行一次性任务,而bindService()则用于与Service建立连接并进行交互。 3. BroadcastReceiver:BroadcastReceiver是接收系统或应用广播事件的组件。Android系统会发送...

    weibo4android新浪微博Android案例源码(Android 2.2以上)

    6. **BroadcastReceiver**:广播接收器可以监听系统或应用广播事件,如网络状态变化、开机启动等,并做出响应。 7. **ContentProvider**:内容提供者负责在应用间共享数据,例如联系人、日历等。 8. **HttpClient/...

    android初学者小项目

    6. **BroadcastReceiver**:在某些情况下,应用可能会注册一个广播接收器,监听设备电源状态的变化,比如开机或解锁时自动启动电筒。 7. **Service**:如果电筒需要在后台持续运行,可能需要创建一个服务(Service)...

    008集-android开发常用术语

    2. **Intent**:意图(Intent)是Android中的一个消息对象,用于启动另一个组件(如Activity或Service)。它可以用来传递数据,并在应用的不同部分之间建立通信桥梁。 3. **Layout**:布局(Layout)是定义Android...

    android 应用开发教程

    11. **BroadcastReceiver**:广播接收器用于监听系统或自定义广播事件,如网络状态变化、开机启动等。 12. **通知(Notification)**:通知是向用户显示重要信息的方式,可以在状态栏中显示并进行交互。 13. **多...

    一个android app

    Android App,作为全球最受欢迎的移动操作系统平台之一,为开发者提供了丰富的功能和无限的创新可能。Android应用通常由一系列组件构成,包括活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)...

    Android小米系统之便签源码.zip

    BroadcastReceiver可以监听系统或应用内的事件,如系统启动或接收到特定消息时自动执行操作;ContentProvider则可能用于存储和共享笔记数据。 在源码中,我们可以看到小米便签应用如何实现这些组件: 1. **...

    android各重要组件等使用范例

    服务可以通过`startService()`启动,或者通过`bindService()`与之绑定,后者允许其他组件与服务进行交互。 BroadcastReceiver用于接收系统或应用广播事件。例如,当设备接收到开机广播时,`BootReceiver.java`可以...

    build android doc

    在Android项目中,Service是非常核心的一个组件,它可以后台运行并执行长期任务,即使用户离开应用也不会被系统自动关闭。例如,Service可以用于实现开机启动、后台音乐播放等功能。 VideoView是Android提供的一种...

    Beginning.Android.2

    8. **内容提供者(Content Provider)**:内容提供者用于在应用之间共享数据,它是Android四大组件之一。书中会讲解如何创建和使用内容提供者,以及SQLite数据库的管理。 9. **多线程与异步处理**: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周期 ...

    android 新手

    13. **Android组件间通信**:Intent是Android中组件间通信的主要手段,通过Intent可以启动Activity、Service,传递数据,甚至实现跨应用通信。 14. **Android Material Design**:谷歌推出的Material Design设计...

    android lee源代码设计资料

    理解这个过程对于优化开机速度、解决启动问题非常关键。 2. **HAL(硬件抽象层)**:Android的硬件抽象层负责与硬件设备交互,提供了标准化接口,使得上层服务可以独立于具体硬件实现。学习HAL源码,能帮助我们更好...

    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...

Global site tag (gtag.js) - Google Analytics