2012-09-11 64 views
0

我的應用程序只需要json數據url並顯示它在TableLayout。我用asynctask來請求json數據,然後我用那json數據填寫我的TableLayout。它工作正確,但在設備方向改變時,它再次通過運行AsyncTask請求json數據。我只是想再次停止撥打AsyncTask。我希望AsyncTaskactivity的生命週期中只運行一次。想要停止重新啓動asynctask方向更改

+0

將android:configChanges =「orientation | keyboardHidden」添加到清單中的活動 –

回答

1

android:configChanges="keyboardHidden|orientation"添加到您的活動中,以防止方向更改時重新啓動活動。

+0

嘿,謝謝yar。但我不明白這個問題因爲我在其他應用程序做了同樣的事情,但它工作正常,但在這個應用程序,它會產生問題 –

+0

@KailashDabhi問題是什麼,但當你改變方向活動再次重新啓動。所以它叫一切。 –

2

爲了保持AsyncTask運行,您應該覆蓋onRetainNonConfigurationChange()(或setRetainInstance(),但請注意,它是API11!)並將您的AsyncTask傳遞到那裏以使其保持活動狀態。另外,您也可以通過添加

android:configChanges="keyboardHidden|orientation|screenSize" 

<activity>告訴你的框架活動將處理由本身的一些配置的變化。但是這不是正確的方法(而是一條捷徑),因爲你只需要保留任務而不是其他任何東西。

+0

onRetainNonConfigurationInstance()方法被分類。 –

+0

確實如此,但我故意鏈接到onRetainNonConfigurationChange(),因爲我們不知道SDK OP的目標是什麼(setRetainInstance()是API 11),所以這是他可以找到兩者的方式。無論如何編輯 –