我正在開發一個應用程序,更頻繁地向Web服務發出請求。我想要做的是,當互聯網不可用或不連接時,而不是繼續請求;應用程序應顯示一條消息,指示無法使用互聯網並自殺。我有這個代碼工作的罰款與我 -AsyncTask與對話框不可用,然後結束整個應用程序
public GetXMLFromServer(Context context, GetXMLCallback gc,
ArrayList<NameValuePair> params, String message) {
this.context = context;
this.gc = gc;
this.postParameters = params;
progressDialog = new ProgressDialog(this.context);
this.message = message;
}
protected void onPreExecute() {
progressDialog.setTitle("Please Wait");
progressDialog.setMessage(message);
progressDialog.show();
}
@Override
protected void onPostExecute(String result) {
progressDialog.dismiss();
gc.onSuccess(result);
}
@Override
protected String doInBackground(String... params) {
String response = null;
try{
ConnectivityManager cm = (ConnectivityManager) this.context
.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnectedOrConnecting()) {
} else if (netInfo == null) {
AlertDialog alertDialog = new AlertDialog.Builder(this.context).create();
alertDialog.setTitle("Connection Problem");
alertDialog.setMessage("You are not connected to Internet");
alertDialog.setButton("Exit",
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
isAvailable=false;
return;
}
});
alertDialog.show();
}
/*if(isAvailable==false){
then finish the calling activity or entire app.
}*/
}catch(Exception e){
}
try {
response = CustomHttpClient.executeHttpPost(this.urlToFetch,
this.postParameters);
} catch (Exception e) {
e.printStackTrace();
}
return response;
}
}`
現在我的問題是,我無法弄清楚如何提出請求和崩潰的應用程序之前結束整個應用程序或調用活動,因爲那裏是不可用互聯網。 (註釋部分代碼是我想停止應用程序並結束它的地方)
(對不起,我的知識貧乏)'取消()評論'是從呼叫活動的'的onDestroy(叫)'方法(我猜)。但是如果互聯網不可用,我無法從對話框的onClick()中完成調用活動,因爲我沒有調用活動的正確上下文。 (也就是說'finish()'也是未定義的)只有在調用'cancel'時,'isCanceled'纔會成立。那麼如何做到這一點? :( – SachinGutte 2012-04-03 15:06:34
增加了更多的細節,必須明確調用cancel(),但是仔細看看代碼,看起來不太合理。但是,更好的方法可能是在啓動AsyncTask()之前檢查網絡的連通性, ' – PearsonArtPhoto 2012-04-03 15:21:15
我想我不能調用finish()的原因是它屬於'extends''Activity'的活動,而不是'extends''AsyncTask'的類。 – SachinGutte 2012-04-03 15:22:30