【问题标题】:How to start an activity in background and show it afterwards?如何在后台启动活动并在之后显示?
【发布时间】:2013-05-25 17:41:16
【问题描述】:

我有两个活动,一个是 SplashActivity 另一个是 MainActivity,一个包含 webview 的活动。

我需要在显示启动画面时加载 webview。所以我正在寻找一种在SplashActivity::onCreate() 的后台加载MainActivity 的方法;

如果直接调用intent,则立即将MainActivity拉到最前面,同时卡在webview中。

我查找了很多关于启动画面的解决方案,例如this .但是,在启动时间到期之前,它们不会初始化 MainActivity。

【问题讨论】:

  • 您可以尝试通过延迟几毫秒显示 mainactivity 来使用动画...
  • 你可以先启动MainActivity,然后在MainActivity的onCreate()中启动SplashActivity。在所需的持续时间之后,您可以关闭 SplashActivity 并且 MainActivity 会重新出现,这样就好像您已经从 Splash 启动了 Main。
  • @user1721904 是的,我认为这个想法应该可行。但是,您能否提供更多详细信息?说,我应该使用finish() 来停止SplashActivity 吗?还是我应该使用打算启动它?也请写下它作为答案。 THX
  • 将其作为答案发布:)
  • 你可以做的不是有2个布局,你可以有一个布局并在时间结束后替换布局

标签: android android-activity splash-screen


【解决方案1】:

Android 应用可以缓存网络数据。你可以利用它来发挥你的优势。 (它对我有用)。 我做了什么:

  • 我在初始屏幕中创建了一个 WebView。
  • 未将其附加到 UI,
  • 在 Main Activity 中请求了我需要的网页。
  • 加载初始屏幕中的 WebView 后,启动另一个 Activity。

那里的 WebView 将使用您在启动画面中创建的 WebView 的缓存。

【讨论】:

    【解决方案2】:

    您可以先启动MainActivity,然后在onCreate()MainActivity 中启动SplashActivity。在所需的持续时间之后,您可以关闭 SplashActivityMainActivity 会重新出现,这样就好像您已经从 Splash 启动了 Main。

    让我解释一下-

    在您的MainActiviy 中使用intent 并使用startActivity 而不是startActivityForResult 启动SplashActivity,因为您不希望将结果从SplashActivity 传递回MainActivity

    现在你在SplashActivity,启动一个线程并在线程中等待所需的持续时间,然后调用finish(),这样SplashActivity就会关闭,之前启动的MainActivity会出现在前台。

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:

      我希望这能完美运行...

         ProgressDialog pd;   
      
         pd = ProgressDialog.show(YOUR_ACTIVITY.this,"Loading...", true, false);
      
                  new Thread(new Runnable() {
      
                      @Override
                      public void run() {
                          // TODO Auto-generated method stub
      
                          Intent intent = new Intent(YOUR_ACTIVITY.this,
                                  NEXT_ACTIVITY.class);
      
                          startActivity(intent);
                          pd.dismiss();
                      }
                  }).start();
      
              }
          });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-24
        • 2020-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-23
        相关资源
        最近更新 更多