页面(activity)太多,要完全退出app基本很难做到。 后来基于kill pid的基本思想,基本做到了。
只需要下面两个步骤就可以完成。
<application android:name=".ITDLApplication"
android:icon="@drawable/icon"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar"
android:debuggable="false"
<!-- important setting here -->
android:taskAffinity="android.task.itdl">
<activity android:name=".activity.LoginActivity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:configChanges="orientation|keyboardHidden|navigation">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.DEFAULT"/>
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".activity.XXX1Activity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:launchMode="singleTask"
<!-- important setting here -->
android:configChanges="orientation|keyboardHidden|navigation">
</activity>
<activity android:name=".activity.XXX2Activity"
<!-- important setting here -->
android:taskAffinity="android.task.itdl"
android:launchMode="singleTask"
<!-- important setting here -->
android:windowSoftInputMode="adjustResize|stateHidden"
android:configChanges="orientation|keyboardHidden|navigation">
</activity>
.....
- 在父类BaseActivity中@Override
protected void onResume() {
super.onResume();
if(((ITDLApplication)getApplicationContext()).isExitApp()) {
exitApp();
}
}
- 在任意派生类Activity中,调用 ((ITDLApplication)getApplicationContext()).setExitApp(true);
Process.sendSignal(Process.myPid(), Process.SIGNAL_QUIT));
当然,你最好给用户一个Exit app的Entry(一个Menu,Button,甚至用户按Back也可).
在退出前也可以保存一些设置,释放资源。
分享到:
相关推荐
在Android开发中,正确地退出App是一个常见的需求,但也是一个有争议的话题,因为谷歌官方并不推荐用户通过手动方式强制退出App。然而,某些场景下,如优化用户体验或特定功能需求,我们仍然需要实现这一功能。本文...
【黔商智慧景区APP解决方案】是一款利用物联网、大数据等先进技术构建的智慧旅游应用程序,旨在为景区管理和游客服务提供全面的解决方案。此方案的核心是通过整合旅游资源,如门票、酒店、餐饮、交通等,构建一个多...
"Mac 小裤子"提供了一个解决方案,通过拦截可能导致退出的操作,提升应用的稳定性。 2. **用户交互设计**:防止误操作的设计体现了良好的用户交互原则,即减少用户的认知负担,提高操作的直觉性和安全性。"Mac 小...
"swift-Mac小裤子防止用户失误导致退出App"这个项目显然关注的是如何在Mac应用中避免用户意外关闭程序,提供一种机制来保护应用不会因为误操作而被轻易退出。这通常涉及到对系统事件的监听和拦截,以及对用户交互的...
软件自动更新解决方案及 QT 实现 软件自动更新解决方案是指在软件开发过程中,实现自动更新的功能,以确保软件一直保持最新的版本。该解决方案采用 QT 框架实现,具有高效、可靠、灵活的特点。 在该解决方案中,...
Vue2.0用户权限控制解决方案 Vue2.0用户权限控制解决方案是基于Vue/Vue-Router/axios实现的前端用户权限控制解决方案,通过对路由、视图、请求三个层面的控制,使开发者可以实现任意颗粒度的用户权限控制。本解决...
《手机实时提取SIM卡打电话的信令和声音》是一个针对Android手机的技术解决方案,该方案旨在通过USB蓝牙模块实现实时提取SIM卡的通话信令和声音,并将其传递至Internet的其他设备。这一技术的核心在于利用HFP(Hands...
这个问题有两个层次的解决方案,首先是管得住自己的手(qi lin bi)的方案。 这个只需要在打开了Outlook的情况下,右键任务栏的图标勾选最小化时隐藏,然后要关闭的时候都点最小化就可以保证Outlook一直在后台运行...
在应用程序开发中,特别是桌面应用,我们可能希望确保应用程序只能被启动一次,防止用户无意或有意地多次打开,这就需要用到单例唯一运行的解决方案。 标题“基于C#的应用程序单例唯一运行的完美解决方案”所指的...
本文将深入探讨Fragment重叠的问题,并提供一种完美的解决方案。 Fragment重叠问题产生的原因多种多样,主要包括以下几点: 1. **错误的Transaction管理**:当使用FragmentManager进行Fragment操作时,如果没有...
【外网移动办公 EMM 解决方案】是深信服科技有限公司针对医院互联网化背景下,保障数据安全而提出的一种策略。随着医疗机构业务系统的移动化,员工在外网移动办公时的安全问题日益凸显。此方案旨在解决数据传输安全...
总结来说,智慧精准扶贫系统解决方案是运用现代信息技术手段,对传统扶贫模式的创新升级,它强调精准识别、精准帮扶和精准退出,以实现扶贫工作的精细化和高效化,助力我国打赢脱贫攻坚战。通过“四一工程”的实施,...
**O2O电商解决方案商业计划书精品模板** 在数字化时代,O2O(Online To Offline)电商模式已经成为许多企业拓展业务、吸引客户的重要途径。一个精心设计的O2O电商解决方案商业计划书可以帮助创业者和企业家清晰地...
针对这个问题,有几种解决方案: 1. **在C中调用finish()**:当用户在C界面点击返回按钮时,调用`finish()`,这样用户会直接回到A,而不会经过B。这可以通过重写`onOptionsItemSelected()`方法或者监听硬件返回按钮...
"沉浸式视频播放解决方案" 在移动端开发中, especialmente 在微信环境下,实现沉浸式视频播放是一项挑战性的任务。本文将解决方案的技术方案,实现真正意义上的沉浸式视频播放。 首先,了解什么是沉浸式?沉浸式...
标题"解决ios下后台运行与锁屏时倒计时停止问题"正是针对这一常见挑战,而描述中的内容则提供了解决方案的方向。 当iOS应用被切换到后台,Apple的沙盒机制会自动暂停大部分非必要进程,包括Web视图(如WKWebView)...
一种可能的解决方案是使用Android的Task Affinity机制,确保应用的所有Activity都在同一个任务中,以便于完全退出。另外,可以考虑使用finishAffinity()方法来结束所有关联的Activity,这可能会帮助解决这个问题。 ...
本文将详细介绍一种解决方案,利用自定义的ExitUtil类和对Activity生命周期的理解来实现。 首先,我们需要创建一个名为ExitUtil的工具类,它的主要作用是帮助我们完全退出应用程序。这个类需要一个Context参数来...
“修复返回键退出APP情况”是指在封装过程中,通常会遇到Android设备上的返回键操作与网页浏览行为不一致的问题。通常,返回键会关闭当前页面,而在封装的APP中,可能需要实现返回键来模拟浏览器的后退功能,而不是...