Android程序按home键回到后台,点击桌面图标,当前页面退出回到启动页的问题
发表于|更新于
|总字数:112|阅读时长:1分钟|浏览量:
原因
当点击桌面应用图标时,会重新启动app,启动新的堆栈,清除之前的堆栈,所以之前开启的页面都会被清除
解决方法
在启动页面的onCreate()中加入
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){ |
发现启动页再次启动后,立即执行Destroy方法,并使用return阻止后续的操作,便可以保留当前页面的显示状态。
文章作者: 丨小小丶
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Hexo!
相关推荐
2021-09-14
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题
activity在后台被杀死后恢复,fragment空指针导致崩溃的问题 出现原因 在activity被回收后恢复时,activity被重新实例化了,但是附属在该activity中的fragment并没有被销毁,在activity的onSaveInstanceState里会将fragment的状态保存起来,当activity重新创建时,其中的fragment还是之前的,而父activity已经被回收了,此时调用getActivity会返回null导致崩溃。 解决方法 只需要在fragmentactivity被系统回收的时候不保存fragment的状态即可,即重写fragmentactivity的onSaveInstanceState并注释掉super.onSaveInstanceState方法,代码如下: @SuppressLint("MissingSuperCall")@Overrideprotected void onSaveInstanceState(@NotNull Bundle outState) { // super...
2021-07-15
Android实现两次返回退出应用
共有两种方法实现此功能 方法一:重写onBackPressed()方法 重写onBackPressed()方法,执行exit()方法,在exit方法中,会首先判断isExit的值,如果为false的话,则置为true,同时会弹出提示,并在2000毫秒(2秒)后发出一个消息,在 Handler中将此值还原成false。如果在发送消息间隔的2秒内,再次按了Back键,则再次执行exit方法,此时isExit的值已为 true,则会执行退出的方法。 public class MainActivity extends AppCompatActivity {private static boolean isExit = false; // 标识是否退出private static Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { super.handleMessage(msg); isExi...
2021-06-10
String.format()的使用
当有一个字符串有一部分是固定另外一部分是需要变化的时候,最好使用String.format()来处理这种情况。 格式为String.format(String format, Object ... args) 例如在www.xxx.com/s?index=后面需要添加参数时 String url = "www.xxx.com/s?index=%d" String format = String.format(url,100) System.out.println(format) 执行后即可得到结果www.xxx.com/s?index=100 如在字符串中有多个变化的部分的时候则可以使用以下方法: 例如需要显示距离过年还有xx天xx时xx秒 可以在string.xml中声明 <string name="delay_time">距离过年还有%1$d天%2$d时%3$d秒</string> 在代码中的使用: mTextView.setText(String.format(getResources().ge...
2022-03-28
android unity混合开发
unity配置 创建一个3D mobile项目,在File-Build Settings中勾选Export Project,会出现Export按钮,点击即可导出unity工程作为Android工程的module Android配置 在settings.gradle中添加: include ':unityLibrary'project(':unityLibrary').projectDir=new File('unity导出地址\\unityLibrary') 在Project的build.gradle的repositories下添加: flatDir { dirs "${project(':unityLibrary').projectDir}/libs"} 在使用到unity的module依赖中添加: implementation project(':unityLibrary'...
2021-05-26
如何在TableLayout的item之间添加分割线
LinearLayout的android:divider属性 这个属性可以在LinearLayout的每个子布局直间添加一个“drawable”作为分割线,这个drawable必须有设定好的高度或者宽度,因此不能直接设置为“@color/….” 这个属性要和android:showDividers一起使用才会生效 android:showDividers有“begining”,“middle”,“end”,“none”四种值。默认值为“none”,即不显示分割线。 android:showDividers属性这个属性可以将定义的divider属性显示出来 android:showDividers=”beginning” 只有第一个子控件上方显示一条分割线 android:showDividers=”middle” 每个子控件之间都会显示一条分割线 android:showDividers=”end” 只有最后一个子控件的下方会显示一条分割线 android:showDividers=”none” 如果不设置此属性则默认为none,即不显示分割线 以上两个属性需设置a...
2022-05-11
unityAndroid如何判断点击到的是UI界面
if (Input.GetMouseButtonDown(0)) { if (EventSystem.current.IsPointerOverGameObject()) { Debug.Log("点击到UGUI的UI界面,会返回true"); } else { Debug.Log("如果没点击到UGUI上的任何东西,就会返回false"); } }
