2015-12-02 80 views
0

我想在主要活動開始前檢查一些condtiton,並根據測試結果我必須開始新的活動或繼續相同的活動。這個怎麼做?開始活動前檢查條件

+0

在'setContentView'之前的'onCretee()'方法中檢查它。 –

+0

http://stackoverflow.com/questions/34037705/using-flags-in-android-so-to-start-from-the-same-activity-from-where-the-app-was/34038637#34038637 – k3b

回答

1

你可以在你的OnCreate()方法中檢查它。它在您的活動開始時被調用。

onCreate(...){ 
.... 
if(want this){ 
//continue; 
}else{ 
// start new activity 
} 

} 
0

默認的啓動活動在清單中設置,所以更好的方法是使用碎片。請記住片段更快/更輕,所以不要使用Application作爲「決定」類來啓動活動(不好的練習),而是使用您的主要活動。在你的onCreate()方法中,檢查你的條件並附加所需的片段。

0
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    if(startNewActivity) { 
    // TODO Fire off intent to start new activity 
    finish(); // Closes the current activity 
    return; 
    } 
    // TODO Code for current activity. 
} 

startNewActivity是一個布爾值,指示是否啓動新的活動。它應根據您的情況分配一個值。

+0

請考慮編輯您的帖子以添加更多關於您的代碼的解釋以及爲什麼它可以解決問題。一個主要包含代碼的答案(即使它正在工作)通常不會幫助OP瞭解他們的問題。 – SuperBiasedMan

0

我用java annotation來處理這種情況:

  1. 創建Annoation class
  2. 在它
  3. 一個startActivity方法創建CustomContext.java創建Interceptor.java
  4. 創建它們實現攔截like this類(這裏命名爲DemoInterceptor.java)
  5. 聲明您的活動中的DemoInterceptor靜態變量。和演示活動應該喜歡this然後,通過步驟#2中的自定義startActivity啓動活動

享受並讓我知道如果您有任何進一步的問題。