Android启动无界面的Activity,并且一直后台运行
本文链接:https://www.cnblogs.com/muphy/p/14894754.html
因为需要保证某APP一直可靠运行,需要且只能写一个相互唤醒的Activity守护程序,两个应用互相唤醒
遇到的问题及处理方式:当守护程序被检测是否运行的时候总是跑到前台运行,影响APP的使用,解决方式是让Activity守护程序无界面运行,虽然守护程序被检测时因无界面而显示的还是应用APP的界面,但是APP却操作不了,只能重新通过任务管理器切换到前台重新运行,此时需要配合onResume生命周期函数调用moveTaskToBack函数将守护程序手动移到后台运行,守护程序可以不再最近任务列表显示
MainActivity.java
//package com.muphy; import android.app.Activity; import android.content.Intent; import android.os.Bundle; public class MainActivity extends Activity { @Override protected void onStart() { super.onStart(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); 有没有都无所谓 moveTaskToBack(isFinishing());//立即进入后台运行 } @Override protected void onResume() {//进入前台 super.onResume(); moveTaskToBack(isFinishing());//从前台唤醒立即进入后台运行 } }
AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="me.muphy"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true"> <activity android:name=".MainActivity" android:label="@string/app_name" android:excludeFromRecents="true" <!-- 最近任务栏不显示activity 这里无关紧要--> android:theme="@android:style/Theme.Translucent.NoTitleBar"> <!-- 无界面主题 --> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>