2015-04-12 40 views
0

我在寫一個有幾個活動的應用程序。主要活動可以通過Intent接收數據,然後啓動另一個處理該數據的活動。如何殺死意圖數據

當完成第二個活動時,由於主要活動運行onResume方法(進程的檢查和意圖)以及初始意圖仍然存在,所以我有一個問題。所以App再次調用第二個活動。

我的問題是在調用第二個活動後消除Intent數據,並因此返回第二個意向不重複該循環。

非常感謝你

+0

這看起來像是一個類似的問題從這裏: http://stackoverflow.com/questions/19813652/remove-data-from-notification-intent –

回答

0

設置一個類變量爲0,然後使它爲1。 所以你不要做循環。

+0

你將如何處理另一個合法的,未經執行的意圖從外? –

0

我可以調用次活動

是後消除意向數據。

只要您打電話給第二個活動(或第二個活動開始),第一個活動方法將被調用。您可以在Activity1中覆蓋方法,並執行您喜歡的任何操作。

例:

@Override 
protected void onPause() { 
    super.onPause(); 
    getIntent().removeExtra("YourMainActivityData"); 
} 
+0

直到你在onPause()中建議要做的事情才能解決問題,這不是一個有意義的答案。 –

+0

@ChrisStratton那麼我應該說,這不是有意義的問題。如果你不提供任何代碼,我假設你可以處理編碼部分,如果你知道如何去做。如果您想要使用合適的解決方案,請更新您的問題,並提供主要活動意向數據的一些詳細信息以及您如何處理該數據。 –

+0

@ChrisStratton對不起,我以爲你是問這個問題的人。無論如何,我用代碼更新了我的答案。事實上問題並不恰當。如果我給隨機代碼,它會誤導讀者。 –

0

嘗試添加該代碼ü在onResume開始第二次活動後:

setIntent(new Intent()); 

這將替換回報意圖當u調用getIntent();

希望它有幫助。

+0

我試過了。非常感謝你。我得到了一個nullPointerException錯誤,所以我加了'if(intent!= null)'。有了這個解決方案,我第二次點擊一個鏈接,應用程序不會調用它的第二個活動,留在主要活動。新的意圖不見了,我不明白 – Pibs

0

我無法刪除意圖數據,所以我寫了一個替代方法。我在第二個活動中設置了意圖過濾器,而這個活動完成了所有的工作。當用戶想要回去時,我開始第一個活動,然後開始第二個活動。

也許這是一個好方法,也許不是。但它對我來說運行良好。

非常感謝!