2012-10-29 83 views
1

我爲我的應用程序創建了一個啓動畫面。 5秒後,使用下面的代碼開始下一個活動。現在我的問題是,如果用戶在5秒結束之前離開當前活動,那麼只要5秒結束,下一個活動(在我的情況下爲InfoActivity)就會出現,即使我在另一個應用程序或其他任何地方。Android:如果用戶導航離開當前活動,如何暫停下一個活動的啓動?

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.launch); 
    new Handler().postDelayed(new Runnable() { 

     public void run() { 
      final Intent mainIntent = new Intent(LaunchActivity.this, InfoActivity.class); 
      LaunchActivity.this.startActivity(mainIntent); 
      LaunchActivity.this.finish(); 
     } 
    }, 5000); 
} 
+0

正確處理該活動的生命週期。這應該能夠完成這項工作。 – Raghunandan

回答

0

此過程爲我工作。

flag = false;

runnable = new Runnable() { 
    public void run() { 

     if(!flag) { 
      final Intent mainIntent = new Intent(LaunchActivity.this, InfoActivity.class); 
      LaunchActivity.this.startActivity(mainIntent); 
      LaunchActivity.this.finish(); 
      } 
     } 
    }; 
handler = new Handler(); 
handler.postDelayed(runnable, 5000); 

onPause() { 
super.onPause(); 
flag = true; 
handler.removeCallbacks(runnable); 
} 

onRestart() { 
super.onRestart(); 
flag = false; 
handler.postDelayed(runnable, timeOfPause-timeOfCreate); 
} 
1

,你可以使用一個變量

shouldNavigate=true; 

您在原活動的onDestroy()方法取消設置。

onDestroy() { 
    shouldNavigate=false; 
    [...] 
} 

在你postDelayed運行() - 方法,你再檢查

if(shouldNavigate) {...} 
相關問題