戒烟时,android启动屏幕很奇怪

时间:2011-02-28 06:40:58

标签: android splash-screen

我为我的Android应用程序创建了一个启动画面。我沿着路线走了一条活动,它自己在一个泼溅线上显示,然后加载“MainMenu”活动。 这没关系,直到我想退出应用程序。 当我点击“后退按钮”时,我看到MainMenu窗口。当我第二次点击“后退按钮”时......我没有看到启动画面,我再次看到MainMenu。额外的“后退”将结束该应用。

不好,有关于如何避免这种行为的任何好的提示吗?  最重要的当然是当从“MainMenu”击中“返回”时直接结束应用程序,但我想我需要重新模拟启动画面,而不是该活动的一部分?

Splashcode

   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    Thread splashThread = new Thread() {
       @Override
       public void run() {
          try {
             Log.d("Trying","Tries");
             int waited = 0;
             while (waited < 5000) {
                sleep(100);
                waited += 100;
             }
          } catch (InterruptedException e) {
              Log.d("Catching", e.toString());
          } finally {
             finish();
             Intent i = new Intent(UEABB.this,MainMenu.class);
             UEABB.this.startActivity(i);
             startActivity(i);

          }
       }
    };
    splashThread.start();
 }

此致

2 个答案:

答案 0 :(得分:2)

尝试在manifest.xml中的SplashScreen Activity上显式设置android:noHistory="true"。在设计我的“What's New”活动时,我采用了类似的方法。

<activity android:name=".activities.WhatsNewActivity"
    android:label="Version History" android:noHistory="true">
    <intent-filter>
       <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>

但是,切换到另一项活动后,您应该致电finish()

答案 1 :(得分:1)

您的splashthread活动应在启动MainMenu活动后立即致电finish()。这将把它从堆栈中删除,它不应该干扰退出应用程序。

除非你在事件处理程序中使用后退键,否则我无法想到可能导致此行为的任何其他问题。也许你可以发布splashthread的代码。