我有一个问题,当我使用连接的应用程序时,一切都很酷,但当我关闭连接我的应用程序崩溃时,我想知道如何让这个应用程序工作而没有连接它在asyncTask之后崩溃,这就是它,
class FetchRecentPosts extends AsyncTask<Void, Void, Void> {
private ProgressDialog progressDialog;
@Override
protected void onPreExecute() {
super.onPreExecute();
progressDialog = ProgressDialog.show(MainActivity.this, "", getString(R.string.loading_message));
}
@Override
protected Void doInBackground(Void... params) {
articles = Services.getRecentPosts(MainActivity.this);
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
progressDialog.dismiss();
}
}
这是我用于连接的类:
private boolean checkInternetConnection() {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
if (cm.getActiveNetworkInfo() != null
&& cm.getActiveNetworkInfo().isAvailable()
&& cm.getActiveNetworkInfo().isConnected()) {
return true;
} else {
Log.i("wa makaynash connexion a sahbé :s", null);
return false;
}
}
我想知道如何处理所有这些,谢谢
答案 0 :(得分:0)
你是否在某个地方执行帖子时使用你的文章?即使你在点击服务器之前检查了一致性,你也有可能收到超时异常或未知的主机异常。所以你可以在try catch和post中查看你的doinbackground代码执行检查在开始使用之前对文章进行空检查。
答案 1 :(得分:0)
使用此功能,尝试一下,我面临同样的问题。
在oncreate中
if (Utils.isNetworkAvailable(MainActivity.this)) {
// new MyTask()。execute(rssFeed); //你的代码
} else {
showToast("No Network Connection!!!");
}
}
这是在oncreate之后。
public void showToast(String msg) {
Toast.makeText(MainActivity.this, msg, Toast.LENGTH_LONG).show();
}
创建一个名为Utils的类并编写此代码
public class Utils {
public static boolean isNetworkAvailable(Activity activity) {
ConnectivityManager connectivity = (ConnectivityManager) activity
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivity == null) {
return false;
} else {
NetworkInfo[] info = connectivity.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
}
return false;
}
}