在Android应用中开启一个1像素的Activity,由于Activity的级别是比较高的,所以开启1个像素的Activity的方式就可以保证进程是不容易被杀掉的,具体来说,定义一个1像素的Activity,在该Activity中动态注册自定义的广播。
不多说。直接上代码
public class OnePixelReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
if (intent.getAction().equals(Intent.ACTION_SCREEN_OFF)) { //屏幕关闭启动1像素Activity
Intent it = new Intent(context, OnePiexlActivity.class);
it.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(it);
} else if (intent.getAction().equals(Intent.ACTION_SCREEN_ON)) { //屏幕打开 结束1像素
context.sendBroadcast(new Intent("finish"));
Intent main = new Intent(Intent.ACTION_MAIN);
main.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
main.addCategory(Intent.CATEGORY_HOME);
context.startActivity(main);
}
}
}
下面创建一个一像素的Activity
public class

通过开启一个仅1像素大小的Activity,利用其高优先级特性来保持Android进程活跃。当屏幕关闭时启动该Activity,屏幕打开时结束。在1像素Activity中注册广播接收器监听屏幕状态,并在屏幕亮起时自动结束自身。这种方式可以防止应用程序被系统轻易清理。
最低0.47元/天 解锁文章
980

被折叠的 条评论
为什么被折叠?



