2013-01-23 29 views
0

我想知道是否可以抽象startActivity調用?我正在試圖做的是抽象的以下內容:是否可以抽象startActivity調用?

 Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
     public void run() { 
      startActivity(nextIntent); 
     } 
    }, 2000); 

如果我之前已經設置的意圖nextIntent用正確的類和正確的羣衆演員。這個想法是,我會延遲2秒開始的意圖。上面的代碼工作正常,如果我直接從我的活動調用它。我想要做的是抽象的,上面的代碼,這樣我可以從任何像這樣的活動稱之爲:延遲2秒後

DelayActivity.StartDelayedActivity(2,nextIntent); 

這將啓動下一個活動nextIntent。然而,當我嘗試編寫這一點,我得到以下錯誤:

The method startActivity(Intent) is undefined for the type new Runnable(){} 

我已經看了題目是這樣的:Is that possible to call for startActivity() from a static method?,但該線程定義方法的意圖。我希望能夠達成我已經設定並通過的意圖。我正在尋找可能做什麼?如果是這樣,我需要做些什麼改變?非常感謝。

回答

0

我有點懷疑你想要達到的目標。你真的有足夠的活動,這是有用的嗎?這聽起來像你正在嘗試做一個「傳呼機」類服務。那麼爲什麼不直接做呢?

此外,您可能並不想真正創建自己的Handler,您可能只是想將其發佈到Activity的GUI線程(真的!)。所以我會重新考慮你的設計。

但如果你只是想不顧一切的是,在回答你的問題立即是,你應該(從Activity實例如this)上,你應該叫startActivity傳遞一個Context

+0

非常感謝您的回覆。我對Android開發並不熟悉,如果它更優化,我肯定願意重做設計。我試圖做的是延遲一段時間的活動開始。所以流程就像這樣。我有一個活動在屏幕上,用戶採取一些行動,並點擊一個按鈕,將它們發送到一個新的屏幕。這個新的屏幕只會持續幾秒鐘,此時應用程序會自動啓動另一個活動。其目的是爲用戶顯示一個臨時屏幕,但不需要他們從臨時屏幕移動任何動作 – NifflerX

+0

我會堅持將對話框顯示爲彈出視圖或「ViewPager」來顯示一組事物繼續http://developer.android.com/training/animation/screen-slide.html。有一堆活動是代碼氣味的標誌.. –

+0

嗨,感謝您的ViewPager的想法。我的兩個擔心就是它讓用戶有很大的自由度來在屏幕之間來回移動,而且它似乎是爲了在每個屏幕上處理相同的對象而構建的(在這個例子中每個屏幕上都有一個文本框)。在我的屏幕上的應用程序有文本框,而另一個有按鈕,第三個有圖像瀏覽。使用ViewPager可以限制用戶可用的導航選項,並且每個屏幕都有不同的對象?再次感謝你的幫助。 – NifflerX

相關問題