android 服务 重启,Android APP重启的几种方法

项目开发过程中需要实现重启App的功能,常用的可行方案有:

1. 使用 FLAG_ACTIVITY_CLEAR_TOP :

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(getApplication().getPackageName());

LaunchIntent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(LaunchIntent);

}

}, 100);// 1秒钟后重启应用

2. 使用 AlarmManager :

Intent intent = getPackageManager()

.getLaunchIntentForPackage(getApplication().getPackageName());

PendingIntent restartIntent = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);

AlarmManager mgr = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

mgr.set(AlarmManager.RTC, System.currentTimeMillis() + 1000, restartIntent); // 1秒钟后重启应用

System.exit(0);

3.使用Service

开启一个Service,然后自己杀死APP的进程,最后在Service里通过包名来启动一个APP并销毁Service。

(1)RestartAPPTool.java

public class RestartAPPTool {

/**

* 重启整个APP

* @param context

* @param Delayed 延迟多少毫秒

*/

public static void restartAPP(Context context, long Delayed){

/**开启一个新的服务,用来重启本APP*/

Intent intent1=new Intent(context,killSelfService.class);

intent1.putExtra("PackageName",context.getPackageName());

intent1.putExtra("Delayed",Delayed);

context.startService(intent1);

/**杀死整个进程**/

android.os.Process.killProcess(android.os.Process.myPid());

}

/***重启整个APP*/

public static void restartAPP(Context context){

restartAPP(context,2000);

}

}

(2)killSelfService.java

public class killSelfService extends Service {

/**关闭应用后多久重新启动*/

private static long stopDelayed=50;

private Handler handler;

private String PackageName;

public killSelfService() {

handler=new Handler();

}

@Override

public int onStartCommand(final Intent intent, int flags, int startId) {

stopDelayed=intent.getLongExtra("Delayed",50);

PackageName=intent.getStringExtra("PackageName");

handler.postDelayed(new Runnable() {

@Override

public void run() {

Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(PackageName);

startActivity(LaunchIntent);

killSelfService.this.stopSelf();

}

},stopDelayed);

return super.onStartCommand(intent, flags, startId);

}

@Override

public IBinder onBind(Intent intent) {

return null;

}

}

(3)需要在AndroidManifest.xml中注册Service

(4)在需要的地方调用即可

RestartAPPTool.restartAPP(getApplicationContext(),100);

安卓后台保活服务Service与自动重启APP策略解析 Android的Service是一种用于执行后台操作而没有用户界面的组件。它可以在后台执行长时间运行的操作,而不需要用户与应用直接交互。然而,随着Android系统的不断升级,对后台服务的限制也越来越严格,特别是从Android8.0(Oreo)开始,引入了更加严格的电池管理和后台任务限制,这对后台服务的保活提出了更高的挑战。 阅读详情

相关推荐

Android 开机自动重启App代码

如果在手机上,需要在设置里设置允许开机自动启动。 如果在其它手持设备上,如PDA,可直接使用(如不行,则需要去设置里看看)。 在红米note2和手持PDA中测试可行。 第一需要手动启动下App。 写个重启方法类: package com.agenopen.other; import android.content.BroadcastReceiver; import android.co

Panda也疯狂的博客 2572

Android 重启系统设备 或APP

Android 重启系统设备 或APP https://blog.csdn.net/qq_31939617/article/details/80707127

深度剖析Seata源码

本文详细分析了Seata分布式事务框架从服务端启动到客户端使用的全流程。服务端启动阶段会创建线程池、基于Netty搭建服务端,并初始化协调者处理事务请求。客户端通过@GlobalTransaction注解开启分布式事务,利用Spring Boot自动装配机制扫描配置。文章建议读者使用Seata 1.4.2版本配合源码调试,并提供了具体配置示例和模块调整说明。作者还介绍了源码阅读方法,包括移除特定模块和修改配置文件的步骤。整体内容涵盖Seata AT模式的核心实现,包括服务端协调机制和客户端注解驱动的事务管理

禅与计算机程序设计的艺术 1304

android 重启应用方式有几种

4、最有用代码应用定时重启,不需要看门狗。3、adb 命令进行应用重启

七天不过夜的专栏 6909

Android APP重启方法

Android APP重启方法

qq_36570506的博客 2901

防止APP退到被安卓系统清理

一个是尽量提高APP权限,无非就是保持APP始终界面在前台 二是使用守护进程方法,被清理了立刻自己启动, 三是前台跟后台进程分开,被重启了恢复原始环境。 // 申请设备电源锁,在服务start的时候。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23...

weixin_30905133的博客 300

android强制重启app,android比较便捷的重启APP方法

前言:开发过程中,有项需求需要重启APP,谷歌之后都是清一色的代码,可惜自己试了之后真心没用,只能自己想办法了。(PS:百度就算了,对于程序员来说,百度简直就是“玩具度”。个人感言,不喜勿喷)正文:其实原来很简单,就是先开启一个Service,然后自己杀死APP的进程,最后在Service里通过包名来启动一个APP并销毁Service代码如下:/*** 此工具类用来重启APP,只是单纯的重启,不做...

weixin_33473110的博客 3673

android 重启网络,Android APP重启几种方法

项目开发过程中需要实现重启App的功能,常用的可行方案有:1. 使用 FLAG_ACTIVITY_CLEAR_TOP :new Handler().postDelayed(new Runnable() {@Overridepublic void run() {Intent LaunchIntent = getPackageManager().getLaunchIntentForPackage(ge...

weixin_35679813的博客 1258

Android重启应用的几种方法

方法一: Intent intent = new Intent(LoginActivity.this, LoginActivity.class); startActivity(intent); System.exit(0); finish(); 说明: 其中,LoginActivity为重启后的界面,点击重启功能之后,应用是不会走onDestroy()方法,直接走onCreate()–>onResume()。 方法二: Intent intent = getBaseContext().getPa

xuyin1204的博客 7685

android 一键重启,Android实现app一键重启

实现安卓重启使用RestartAPPTool.restartAPP(MyApplication.getAppContext());工具类import android.annotation.SuppressLint;import android.app.AlarmManager;import android.app.PendingIntent;import android.content.Conte...

weixin_42298754的博客 1590

Android(安卓)APP渗透测试-总结

文章目录基础知识安卓系统目录结构组件基础APK目录结构ADB使用Drozer客户端安全测试反编译测试(脱壳与混淆)脱壳回编译测试本地敏感信息存储四大组件安全本地注入动/静态扫描安全的通信方式HOOK开源移动端扫描工具APP安全在线检测系统服务端渗透测试SSL证书抓包问题安装证书问题证书校验问题 前言:这是一份资料整理,不是一份教程,教程在“心中”。 很多时候对产品进行测试,但是总会遇到一些重复的问题,后来发现大部分时间都花在问题检索和筛选上了(检索五分钟,测试一分钟),因此有了这份总结。学会把时间花费在有意

H5oSir 2万+

Android APP重启几种方法

项目开发过程中需要实现重启App的功能,常用的可行方案有: 1. 使用 FLAG_ACTIVITY_CLEAR_TOP : new Handler().postDelayed(new Runnable() { @Override public void run() { ...

SSBBY的博客 2万+

Unity 重启和退出Android app实现方法

这两天在搞Oculus quest2 VR应用,系统是10的,需要用到重启,在Android Studio中重启app,缺点是需要开启android:sharedUserId=“android.uid.system”,,必须系统签名(目前网上流传的系统签名platform.pk8、platform.x509.pem、signapk.jar方案早在1年前就因使用的 MD5withRSA 签名算法被视为存在安全风险而且被禁用,为何现在还是到处复制粘贴?所以非手机、平板类型的安卓设备,最佳方案是找设备供应商提供签

ahphong的博客 4539

android 重启自身app

几种常见的重启Android App方法,或许不是最好的,但有用。如果您有更好的方法,欢迎留言交流。

youmangu的专栏 2万+

android 代码重启app,android比较便捷的重启APP方法

前言:开发过程中,有项需求需要重启APP,谷歌之后都是清一色的代码,可惜自己试了之后真心没用,只能自己想办法了。(PS:百度就算了,对于程序员来说,百度简直就是“玩具度”。个人感言,不喜勿喷)正文:其实原来很简单,就是先开启一个Service,然后自己杀死APP的进程,最后在Service里通过包名来启动一个APP并销毁Service代码如下:/*** 此工具类用来重启APP,只是单纯的重启,不做...

weixin_35443436的博客 2220

win11怎么安装安卓app win11上安装安卓app的步骤教程

微软win11最为亮眼的就是windows系统终于可以兼容原生安卓app了,但是很多安装了win11的朋友发现安装不了安卓app,今天小编来跟大家说说win11安装安卓app的步骤教程吧,更多win11教程可以参考小白刷机网 win11安装安卓app的步骤如下: 升级了win11系统后,首先需要在自己电脑安装一个名为 “ Windows Subsystem for AndroidTM with Amazon Appstore ” 的东西。 它包含两个软件,分别是 Windows Subsystem

qq_29508575的博客 6万+

android 代码重启app

android 代码重启app方法完事 方法 /** * 重启app * @param context */ public static void restartApp(Context context) { PackageManager packageManager = context.getPackageManager(); ...

杨迪龙的博客 5531
上一篇: Android media 测试,如何在ANDROID中检测媒体文件是否受DRM保护?
下一篇: android 布局中白线,关于android:屏幕底部的白线(LinearLayout)
律匠Matt
博客等级 码龄8年 32粉丝 83原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值