从主屏幕按回按钮然后应用程序进入后台,当从后台提升应用程序时,应用程序从启动画面开始。但我想从主屏幕启动应用程序。
public class SplashActivity extends AppCompatActivity {
private static final long SPLASH_DURATION = 3000L;
private Handler mHandler;
private Runnable mRunnable;
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_splash);
mHandler = new Handler();
mRunnable = new Runnable() {
@Override
public void run() {
dismissSplash();
}
};
View rootView = findViewById(android.R.id.content);
rootView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dismissSplash();
}
});
}
@Override
protected void onResume() {
super.onResume();
mHandler.postDelayed(mRunnable, SPLASH_DURATION);
}
@Override
protected void onPause() {
super.onPause();
mHandler.removeCallbacks(mRunnable);
}
private void dismissSplash(){
startActivity(new Intent(this, MainActivity.class));
finish();
}
}
答案 0 :(得分:0)
在致电家庭活动之前,只需致电finish()
方法。
finish();
startActivity(new Intent(getApplicationContext(), yourActivity.class));
如果不起作用,请在家庭活动中处理onBackPressed
。
@Override
public void onBackPressed() {
moveTaskToBack(true); //it goes to background.
}
答案 1 :(得分:0)
请使用{{1}}代替{{1}},因为您正在从另一个主题调用dismissSplash。
{{1}}
答案 2 :(得分:0)
请从启动活动
时添加以下给出的标志Intent intent = new Intent(context, activity);
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
context.startActivity(intent);
如果您找到匹配请尝试此操作,请批准答案。