大家好日子。
我一直在开发一个应用程序,它可以从网站上的某些表格中删除数据并将其显示在屏幕上。一切都很好,但我想在没有数据连接的情况下提供冗余。例如,对话框或Toast只是简单地说“无数据连接”。
我如何以及在哪里放这个?下面是我的Asynctask,其中jsoup获取数据,所以我假设我可以在这里放一些东西?
如果没有与网站的数据连接,应用程序崩溃的那一刻。
//AsyncTask
private class Fixtures extends AsyncTask<Void, Void, Void> {
@Override
protected void onPreExecute() {
super.onPreExecute();
mProgressDialog = new ProgressDialog(MainActivity.this);
mProgressDialog.setTitle("Fixtures");
mProgressDialog.setMessage("Loading...");
mProgressDialog.setIndeterminate(false);
mProgressDialog.show();
}
@Override
protected Void doInBackground(Void... params) {
try {
doc = Jsoup.connect(url).get();
} catch (IOException e) {
}
tables = doc.select("table");
tablesSize = tables.size();
for (int t = 0; t < (tables.size() - 1); t++){
table = tables.get(t);
rows = table.select("tr");
date = doc.select("h2").get(t);
}
return null;
}
非常感谢任何帮助或对其他答案的指示。
答案 0 :(得分:0)
如果您的任务嵌套在片段中,您可以将此方法放在外部类中,这应该可以。否则找到一种方法来传递应用程序上下文而不是使用getActivity。这应该是相对线程安全的。
private void buildFailedDialog(){
AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(getActivity());
dialogBuilder.setMessage("Could Not Connect to Site!");
dialogBuilder.setTitle("Connection Failed");
dialogBuilder.setNegativeButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
final AlertDialog dialog = dialogBuilder.create();
dialog.show();
}
最好只显示一个祝酒词,这样就不会破坏用户的活动
Toast.makeText(getActivity(), "Failed to Connect to Site" ,Toast.LENGTH_LONG).show();