在我的应用程序中,我有两个活动。首先是启动屏幕,它只显示应用程序名称和一些其他信息。在单击启动屏幕活动后,我正在加载主要活动。我的应用程序工作正常,但我面临一个小问题。如果我从主要活动按返回按钮,则控件将转到启动屏幕活动。但我不想再次显示启动屏幕活动,我想在按下“返回”按钮时避免启动屏幕活动。是否可能?如果可以,该如何处理?
AndroidManifest.xml
文件中,在启动画面的<activity>
中添加android:noHistory="true"
属性。从您的描述中,我理解您希望在切换活动后不再显示启动画面。您需要注意到活动会保存在堆栈中,在启动新活动时会将其推入堆栈,并在完成时从堆栈中弹出。我认为,如果您在启动画面活动中调用finish()
方法,问题就可以得到解决,在您调用StartActivity的地方插入finish()
即可。
public void onClick(View v) {
Intent intent = new Intent(Main.this, Splash.class);
startActivity(intent);
finish();
}
希望我能对您有所帮助:)
。
finish();
我明白,您希望在点击返回按钮时不显示闪屏活动。首先,您应该知道Android上的所有活动都以堆栈的形式存在。因此,我们需要在执行完闪屏活动后结束它。我们可以通过在Android Studio中调用finish()方法来实现这一点。以下是解决方案:
Intent intent = new Intent(MainActivity.this, home.class);
startActivity(intent);
finish();
public class Splash extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
Handler hd = new Handler();
hd.postDelayed(new Runnable() {
@Override
public void run() {
Intent i = new Intent(Splash.this,MainActivity.class);
startActivity(i);
#by calling finish() method,splash activity will close after execution
finish();
}
},3000);
}}
@Override
protected void onCreate(Bundle saveInstsnceState){
super.onCreate( saveInstanceState);
\\ do something here
Intent intentSplash = new Intent(SplashActivity.this, NextActivity.class);
StartActivity(intentSplash);
finish ();
}
Class NoBackSplash{
@Override
protected void onCreate(Bundle saveInstsnceState){
super.onCreate( saveInstanceState);
\\ do something here
Intent intentSplash = new Intent(SplashActivity.this, NextActivity.class);
StartActivity(intentSplash);
finish ();
}
@Override
public void OnBackPressed(){
};
}