程序运行中按HOME键,然后再按桌面图标再次重新启动的问题
来源:互联网 发布:刷新页面的js 编辑:程序博客网 时间:2024/05/16 13:47
本文要说的问题如题,打开一个程序后,按home键切到桌面,然后在点击图标,回到的是程序的首页而不是刚才操作的界面,而如果首页是登录页,那么用户体验显然是相当不好的,另外,关于这样的一个问题,在程序没签名之前,从来没有出现过这样的问题,签名之后才出现这样的问题(亲自测试)
出现这个问题的原因应该是再次点击图标的时候activity的Oncreate()方法重新调用了,这时候我们判断他是否是点击图标再次打开的,如果是,直接finish掉
解决问题的代码如下:,只需要在主Activity的onCreate()方法中设置即可
if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){ finish(); return; } setContentView(R.layout.activity_main);
本人测试的demo代码如下
package ss.tabhost.com.mybackstage;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.util.Log;import android.view.View;public class MainActivity extends AppCompatActivity { String TAG = "debug"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Log.i(TAG, "onCreate: "); //getIntent.getFlags()!=0||Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT != 0 if((getIntent().getFlags() & Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT) != 0){ finish(); return; } setContentView(R.layout.activity_main); findViewById(R.id.jump_two).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this,Main2Activity.class); startActivity(intent); } }); } @Override protected void onStart() { super.onStart(); Log.i(TAG, "onStart: "); } @Override protected void onRestart() { super.onRestart(); Log.i(TAG, "onRestart: "); } @Override protected void onResume() { super.onResume(); Log.i(TAG, "onResume: "); } @Override protected void onPause() { super.onPause(); Log.i(TAG, "onPause: "); } @Override protected void onStop() { super.onStop(); Log.i(TAG, "onStop: "); } @Override protected void onDestroy() { super.onDestroy(); Log.i(TAG, "onDestroy: "); }}对应的xml文件
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="ss.tabhost.com.mybackstage.MainActivity"> <EditText android:id="@+id/et" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:hint="请输入文字" android:textSize="18sp" /> <Button android:id="@+id/jump_two" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="跳转" /></RelativeLayout>第二个Activity
package ss.tabhost.com.mybackstage;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;public class Main2Activity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main2); findViewById(R.id.jump_three).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(Main2Activity.this, Main3Activity.class); startActivity(intent); } }); }}
xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="ss.tabhost.com.mybackstage.Main2Activity"> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="这是Actity 2" /> <Button android:id="@+id/jump_three" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" android:text="跳转" /></RelativeLayout>
第三个和第二个一样,就不贴了
本文参考资料如下:
http://blog.csdn.net/busjb/article/details/40891239
0 0
- 程序运行中按HOME键,然后再按桌面图标再次重新启动的问题
- 正在运行的android程序,按home键之后退回到桌面,再次点击桌面图标避免再次重新启动程序的终极解决办法
- android:正在运行的某个android程序中进行编写内容,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,再次点击程序图标避免再次重新启动程序解决办法
- android app首次安装按home键置入后台,从桌面图标点击重新启动的问题
- Android关于项目中遇到的按home键退出到桌面,再次打开重新启动程序的解决方法
- app按home键退到后台后,再次点击程序图标重新启动程序的解决办法
- Android App在运行时候按下home键 再次进入时应用重新启动的解决方法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 正在运行的android程序,按home键之后退回到桌面,在次点击程序图标避免再次重新启动程序解决办法
- 防止点击Home健后App在后台运行,点击应用桌面图标重新启动程序的办法
- 解决app按home键运行到后台,再次运行程序避免再次开启app的MAIN页面
- android点击home键,再次点击程序图标重新启动程序
- android程序按home键之后退回到桌面,然后在次点击程序图标会重新启动程序
- objc_setAssociatedObject 使用
- C和指针_关于输入输出函数的整理
- 学习dangdang的分库分表扩展框架sharding-jdbc(一)
- uiscrollviewdelegate
- VPS搭建VPN
- 程序运行中按HOME键,然后再按桌面图标再次重新启动的问题
- esp8266音频方案分析
- iOS-设置文本行高并计算高度
- 算钱踩过bigDecimal的那些坑
- ElasticSearch之QueryBuilders
- hdu 4941 Magical Forest(STL之map应用)
- Class.forName(driver)出错。(解决)
- ora 12560 tns 协议适配器错误怎么解决
- 现代信息系统的企业驱动力