如何让APP随手机开机启动,然后自启动界面或自启动后台服务呢?那么就要用到强大的广播接收者了。 还有要怎么防止自己的APP不被应用管理器杀死呢?那么就要用到强大的服务了,而且还要用到两个服务。以下Demo代码即可以实现以上两个功能。先来个步骤吧:1、新建一个类并继承于BroadcastReceiver2、在清单文件中注册receiver3、新建一个类并继承于Service 4、在清单文件中注册service5、再新建一个类并继承于Service 6、在清单文件中注册service 注意的是: 两个服务的内容一样,区别只在销毁onDestory方法中启动另一个服务,这也是服务不被杀死的关键。不说了,看代码。清单文件--/AutoOpenApp/AndroidManifest.xml<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android=" package="com.devwang.autoopenapp" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> <service android:name="com.devwang.autoopenapp.AutoOpenService" > </service> <service android:name="com.devwang.autoopenapp.AutoOpenServicer" > </service> <receiver android:name=".BootBroadcastReciver" > <intent-filter> <action android:name="android.intent.action.BOOT_COMPLETED" /> </intent-filter> </receiver> </application></manifest>布局文件--/AutoOpenApp/res/layout/activity_main.xml <RelativeLayout xmlns:android=" xmlns:tools=" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.devwang.autoopenapp.MainActivity" > <TextView android:id="@id/tv" android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center" android:textSize="sp" android:text="开机自启APP" /></RelativeLayout>主界面--/AutoOpenApp/src/com/devwang/autoopenapp/MainActivity.javapackage com.devwang.autoopenapp;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.widget.TextView;public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TextView text=(TextView) findViewById(R.id.tv); text.setText("这是一个自动启动的例子!"); System.out.println("Service oncreate"); Intent i = new Intent(this,AutoOpenService.class); startService(i); }}广播接收者-- /AutoOpenApp/src/com/devwang/autoopenapp/BootBroadcastReciver.javapackage com.devwang.autoopenapp;import android.content.BroadcastReceiver;import android.content.Context;import android.content.Intent;//开机启动完成的 广播接受者 在这里启动APP Activitypublic class BootBroadcastReciver extends BroadcastReceiver {static final String ACTION = "android.intent.action.BOOT_COMPLETED";@Overridepublic void onReceive(Context context, Intent intent) {// TODO Auto-generated method stubif (intent.getAction().equals(ACTION)) {//自启动界面//Intent i = new Intent(context, MainActivity.class);//i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//context.startActivity(i);//自启动服务Intent i = new Intent(context, AutoOpenService.class);i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);context.startService(i);}}} 两个服务第一个服务--/AutoOpenApp/src/com/devwang/autoopenapp/AutoOpenService.java package com.devwang.autoopenapp;import android.app.Service;import android.content.Intent;import android.os.IBinder;public class AutoOpenService extends Service {@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();System.out.println("Servicer ondestory");}@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();System.out.println("Servicer ondestory");Intent i = new Intent(this, AutoOpenServicer.class);startService(i);}}第二个服务--/AutoOpenApp/src/com/devwang/autoopenapp/AutoOpenServicer.javapackage com.devwang.autoopenapp;import android.app.Service;import android.content.Intent;import android.os.IBinder;public class AutoOpenServicer extends Service {@Overridepublic IBinder onBind(Intent intent) {// TODO Auto-generated method stubreturn null;}@Overridepublic void onCreate() {// TODO Auto-generated method stubsuper.onCreate();System.out.println("Service onCreate");}//守护进程 在次方法中 本服务会被销毁 此时可以启动新的服务@Overridepublic void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();System.out.println("Service ondestory");Intent i = new Intent(this,AutoOpenService.class);startService(i);}}OK || VGif开机自启动后台服务Gif Gif A ||OK (源自it黑马的视频教程)
推荐整理分享打不死的小强 杀不死的服务 开机自启动服务(打不死的小强励志词句),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:打不死的小强什么意思,打不死的小强图片,打不死的小强是什么动物,打不死的小强下一句接什么,打不死的小强励志词句,打不死的小强什么意思,打不死的小强励志词句,打不死的小强图片,内容如对您有帮助,希望把文章链接给更多的朋友!
英特尔A模拟器下载与配置 Android自带的模拟器启动很慢,我用的一直是IntelAtomx模拟器,他比前者快很多。使用A模拟器需要下载英特尔®硬件加速执行管理器和模拟器系统映像
Android之fill_parent和wrap_content 在Android布局文件中定义视图垂直或水平大小:android:layout_width和android_layout_height的属性有fill_parent、wrap_content和match_parentfill_parent、wrap_content和match_parent
安卓微博评论 第一步,添加水果列表的代码。打开Fruit.java,添加变量:privateStringtext;和privateStringtime;分别的评论部分和显示时间的部分。添加Source-GenerateConstructorusingFi