我想創建一個類的實例(它延伸Asynctask
)並在每5分鐘後調用方法。爲此,我嘗試在onPostExecute()
方法中調用Thread.sleep(5*60*1000))
,然後創建該類的新實例。代碼如下。在5分鐘的間隔後遞歸地啓動AsyncTask
public class MyAsyncTask extends AsyncTask<String, Void, String>
{
protected String doInBackground(String... arg0) {
//whatever I want to do
}
protected void onPostExecute(String result) {
Thread.sleep(5*60*1000);
new MyAsyncTask().execute("my String");
}
}
但是使用此代碼阻止用戶界面5分鐘。我在某處讀到onPostExecute()
中的代碼是在UI線程中執行的。這解釋了爲什麼UI被阻止。 但是,如何在不阻止UI的情況下創建AsyncTask
的新實例?
有什麼建議嗎? 謝謝。
請注意,它是一個讓AlarmManager工作的痛苦,上面的鏈接來自生產工作代碼。 – Siddharth 2013-04-27 17:31:01