在我的一个测试设备中,我在LogCat中收到了这个可怕的警告:
07-20 09:57:02.093: W/ActivityManager(1159): Launch timeout has expired, giving up wake lock!
07-20 09:57:02.218: W/ActivityManager(1159): Activity idle timeout for HistoryRecord{4072b5e8 com.rero.myapp/.MyActivity}
我最初的研究表明,这是一个常见的眉毛提升者:
我的问题是:
答案 0 :(得分:2)
以下是我尝试的一般想法,但是你如何处理AsyncTask取决于你获得状态后你正在做什么。我会做这样的事情:
private class GetHttpStatus extends AsyncTask<String, Void, Boolean> {
@Override
protected Boolean doInBackground(String[] params) {
private boolean status;
//this will be the string you pass in execute()
String urlString = params[0];
HttpURLConnection httpConnection;
try {
URL gurl = new URL(urlString);
URLConnection connection = gurl.openConnection();
connection.setConnectTimeout(5 * 1000);
httpConnection = (HttpURLConnection) connection;
int responseCode = httpConnection.getResponseCode();
if(responseCode == HttpURLConnection.HTTP_OK) {
status = true;
}
} catch (Exception e) {
status = false;
} finally {
if(httpConnection != null) httpConnection.disconnect();
}
return status;
}
@Override
protected Void onPostExecute(Boolean result) {
//Here you'll do whatever you need to do once the connection
//status has been established
MyActivity.notifyHttpStatus(result);
}
}
//in your Activity somewhere, you would call...
new GetHttpStatus.execute("http://www.amazon.com");