Android应用按下返回键回退至闪屏页问题求解决方案
解决闪屏页返回问题的两种实用方案
问题核心:你的闪屏页(MainActivity)启动主页面(MainActivity2)后,自身仍留在任务栈中,按下返回键时系统会回到栈内的上一个Activity,也就是闪屏页。以下是两种简单可行的解决办法:
方法一:启动主页面后立即销毁闪屏页
这是最直接的方案,在启动MainActivity2的代码后,调用finish()方法销毁当前闪屏页Activity,让它彻底退出任务栈。
修改后的闪屏页代码:
package com.example.a009hassan; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getSupportActionBar().hide(); Thread threadname = new Thread(){ public void run(){ try { sleep(800); } catch (Exception e){ e.printStackTrace(); } finally { Intent intentname = new Intent(MainActivity.this , MainActivity2.class); startActivity(intentname); // 新增:销毁闪屏页Activity,从任务栈移除 finish(); } } };threadname.start(); } }
方法二:通过Manifest配置让闪屏页不保留在任务栈
在AndroidManifest.xml中给闪屏页的<activity>标签添加android:noHistory="true"属性,这样当启动其他Activity后,闪屏页会自动从任务栈中移除,无需修改Java代码。
示例配置:
<activity android:name=".MainActivity" android:noHistory="true" android:theme="@style/Theme.AppCompat.NoActionBar"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity>
两种方法都能解决问题,方法一适合需要在代码里控制销毁时机的场景,方法二更适合静态配置的需求,选哪种都可以。
内容的提问来源于stack exchange,提问作者maliik_hassan_009
相关产品推荐
相关产品推荐

