,你可以用這個方法來檢查Internet連接:
public static boolean isNetworkAvailable(Context context) {
ConnectivityManager connectivityManager
= (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
然後你就跟老師希望它是一個異步任務中使用它..
private class AsyncTaskRunner extends AsyncTask<String, String, String>{
private Context context;
private String NEKI_STRING;
private String listItemString;
public AsyncTaskRunner(Context context ,String neki_string, String listItemString){
this.context = context;
NEKI_STRING = neki_string;
this.listItemString = listItemString;
}
@Override
protected String doInBackground(String... params) {
if(isNetworkAvailable(context)){
return "OK";
}
return "";
}
@Override
protected void onPostExecute(String reply) {
super.onPostExecute(reply);
if(reply.equals("OK")) {
try{
Intent intent=new Intent(getApplicationContext(),RssActivity.class);
intent.putExtra(NEKI_STRING,listItemString);
startActivity(intent);
}catch(Exception e){
}
}
}
}
異步任務不是它需要的,但因爲你需要實現它。
然後你運行你的異步任務:
public void onItemClick(AdapterView<?> parent, View view,
new AsyncTaskRunner(getApplicationContext(), NEKI_STRING, listItems.get(position).getLink().toString()).execute();
}
你'onItemClick'看起來只有精細(提供'listItems'不爲空,幷包含有效的項目),如果應用程序在'RssActivity'崩潰,辦理在該類中崩潰,所以從'RssActivity'發佈crashtraptrace和相關的代碼。 – petey 2015-02-09 22:36:36