Android -- 开机启动无界面后台程序

简单的说,这是一个没有界面的后台运行的应用程序

而且,还有一功能:开机自启动,启动运行一个服务

程序结构非常简单,两个类,一个是service的扩展类,一个是BroadcastReceiver扩展类

[java]view plain copy

print?

  1. import android.app.Service;
  2. import android.content.Intent;
  3. import android.os.IBinder;
  4. import android.util.Log;
  5. import android.widget.Toast;
  6. public class TestService extends Service{
  7. public void onCreate(){
  8. super.onCreate();
  9. Log.d("AAAAAAAAAAAAAAAAAAA", "AAAAAAAAAAAAAAAAAAAAAAA");
  10. Toast.makeText(getApplicationContext(), "默认Toast样式",
  11. Toast.LENGTH_LONG).show();
  12. }
  13. public IBinder onBind(Intent intent){
  14. Log.d("BBBBBBBBBBBBBBBBBBB", "BBBBBBBBBBBBBBBBBBBBBBB");
  15. Toast.makeText(getApplicationContext(), "不默认Toast样式",
  16. Toast.LENGTH_LONG).show();
  17. return null;
  18. }
  19. }

BroadcastReceiver扩展类:

[java]view plain copy

print?

  1. import android.content.BroadcastReceiver;
  2. import android.content.Context;
  3. import android.content.Intent;
  4. import android.util.Log;
  5. public class BootReceiver extends BroadcastReceiver {
  6. @Override
  7. public void onReceive(Context arg0, Intent arg1) {
  8. // TODO Auto-generated method stub
  9. Log.d("WWWWWWWWWWWWWWWWWWWWW", "WWWWWWWWWWWWWWWWWWWWWWWW");
  10. Intent mBootIntent = new Intent(arg0, TestService.class);
  11. arg0.startService(mBootIntent);
  12. Log.d("CCCCCCCCCCCCCCCCCCCCC", "CCCCCCCCCCCCCCCCCCCCCCCC");
  13. }
  14. }

配置文件:

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

<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<service android:name=".TestService"></service> 
<receiver android:name=".BootReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
</intent-filter>
</receiver>
</application>

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-sdk android:minSdkVersion="10" />
</manifest>

参考http://netspook.iteye.com/blog/1291236

附上android广播相关知识

http://bk-lin.iteye.com/blog/1569568

时间: 2024-10-03 13:38:49

Android -- 开机启动无界面后台程序的相关文章

Android开机启动Activity界面

1,原理: 当Android系统完成BOOT阶段之后,就会发送一条名为 ACTION_BOOT_COMPLETED 的广播,我们便可在一个BroadcastReceiver中捕获这条广播,然后启动我们的Activity或者Service,当然要注意的是,我们的application必须具有捕获该广播的权限,下面请看具体步骤: 第一步:首先要有一个用于开机启动的Activity或者Service,这里以系统自己创建的最简单的Activity为例进行讲解. package com.billhoo.s

使用PyQt4写界面后台程序方法总结

使用PyQt4编写界面后台程序的方法总结 一.怎么建立多线程 界面程序如果有稍微耗时一点的任务如果不使用多线程就会界面卡死,所以大多数情况会使用到多线程.PyQt4自己有多线程的机制,可以派生多线程类然后生成多线程实例.代码如下: 1 form PyQt4.QtCore import * 2 3 class MyThread(QThread): 4 def __init__(self,func,args): 5 super(MyThread,self).__init__() 6 self.fun

在 beaglebone black 开机启动自己的QT程序

在 beaglebone black上的Linux系统 开机启动自己的QT程序 把自己编译好的mycomtest程序放在/usr/bin/qtopia/myproject 看/etc/init.d下有没有rc.local,没有的话,创建一个,有的话,就在里面直接的exit 0前添加 /usr/bin/qtopia/myproject /mycomtest -qws & ,开机就能启动. 我的机子里没有rc.local文件,则有以下步骤: #touch /etc/init.d/rc.local #

Android开机启动程序

android程序实现开机启动的原理,简单点说就是做一个广播接收器,接收到开机广播时就启动activity或service或执行其它操作.Android系统在启动的时候会发出一个开机广播,内容为ACTION_BOOT_COMPLETED,我们写一个接收器,每当接收到这个广播的时候,就说明是刚开机,然后启动需要开机启动的程序就行了.具体步骤: 第一步,新建BootBroadcastReciever.java,继承BroadcastReceiver, public class BootBroadca

Android开机启动过程分析

首先android是基于Linux的内核,只有先加载了kernel才能启动安卓,对于Linux来说android只是其上的一个应用程序.Android的启动大致可以形象的划分为三个过程: Init->init.rc->zygote.从事嵌入式开发的人都知道,Linux加载完内核驱动后会挂载'/'根文件系统,挂载完成后会执行'/init'二进制程序,这也是内核启动后执行的第一个用户程序,android里面也是这样.这个程序的main函数位于android/system/core/init/ini

Android 开机启动问题

问题描述 如果Android 开机广播没有android.permission.RECEIVE_BOOT_COMPLETED权限,如果如何做到开机启动,老板说android.permission.RECEIVE_BOOT_COMPLETED上不了市场,大婶们,求带啊. 解决方案1 怎么可能上不了市场, 无论 google 还是哪里,开机启动的应用这么多, qq,taobao哪个不是开机启动 解决方案2 你可以选择监听其他的开机后一定会执行的广播,比如加载SDCard完毕的系统广播!

Android开机启动

使用Android Studio帮我们创建广播,点击包名-->New-->BroadcastReceiver 在清单文件中会自动生成 我们加上开机广播的action <receiver android:name=".BootReceiver" android:enabled="true" android:exported="true"> <intent-filter> <action android:na

android开机启动应用和服务

注册广播监听开机状态,启动应用和服务等: 监听开机的广播接收器: public class BootCompletedReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { //开机启动服务 Intent it= new Intent("com.test.action.testservice"); context.startService(

android 第一次启动滑动界面

一.滑动界面:      第一次启动时除了启动动画外,可能还有着滑动功能介绍界面,现在记录一下这种界面的实现方式,接着上篇启动动画之后的效果附加上.  效果图:           界面: public class SlideActivity extends Activity{ private ViewPager mViewPager; private ImageView mPage0; private ImageView mPage1; private ImageView mPage2; pr