配置后退按钮以跳过第一个视图

时间:2015-08-27 00:01:43

标签: java android android-studio

我有一个带标题画面的应用。当应用程序首次启动时,我有一个onCreate方法,其中包含以下代码:

    setContentView(R.layout.title_screen);
    final Handler handler = new Handler();
    handler.postDelayed(new Runnable() {
        @Override
        public void run() {
            setContentView(R.layout.main_screen);
        }
    }, 2000);

当我在main_screen布局上运行我的应用程序并按后退按钮时,它会关闭应用程序(应该如此)。但是,当我重新打开应用程序时,即使应用程序已在运行,它也会再次显示title_screen布局两秒钟。我该如何防止这种情况?

2 个答案:

答案 0 :(得分:0)

这将防止在恢复时再次出现延迟:

private static boolean flag = false;
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    if(!flag){
           setContentView(R.layout.title_screen);
           final Handler handler = new Handler();
           handler.postDelayed(new Runnable() {
           @Override
           public void run() {
               setContentView(R.layout.main_screen);
           }
       }, 2000);
       flag = true;

   } else { 
       setContentView(R.layout.main_screen);
   }

 }

顺便说一句,如果您的应用程序在后台并且在恢复时再次调用onCreate,则表示它已被操作系统杀死。因此,再次出现初始延迟是正常的。

我要做的是实现两个不同的活动,第一个显示title_screen,第二个显示在2s后显示你的主屏幕。

答案 1 :(得分:0)

查看代码后,我发现您始终以title_screen开头,然后在2秒后,您将更改为main_screen。因此,当您按back时,表示您已完成activity。当您重新打开应用程序时,会再次调用onCreated,并且它会像上一次打开一样运行每行代码。当然,打开应用程序2次没有区别。为了克服这个问题,我建议使用SharedPreference来存储标记以检查main_screentitle_screen