Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java xml解析应用程序强制关闭,internet断开连接_Java_Android_Runtime Error - Fatal编程技术网

Java xml解析应用程序强制关闭,internet断开连接

Java xml解析应用程序强制关闭,internet断开连接,java,android,runtime-error,Java,Android,Runtime Error,它在wifi或3g上工作正常,但在两个断开连接的情况下强制关闭。 我从一个教程中学习,所以我不确定,但我相信在代码中考虑了互联网断开 完整日志 代码: package org.tatvamoksh.tml; 导入java.util.ArrayList; 导入java.util.HashMap; 导入org.w3c.dom.Document; 导入org.w3c.dom.Element; 导入org.w3c.dom.NodeList; 导入android.app.ListActivity; 导入a

它在wifi或3g上工作正常,但在两个断开连接的情况下强制关闭。 我从一个教程中学习,所以我不确定,但我相信在代码中考虑了互联网断开

完整日志

代码:

package org.tatvamoksh.tml;
导入java.util.ArrayList;
导入java.util.HashMap;
导入org.w3c.dom.Document;
导入org.w3c.dom.Element;
导入org.w3c.dom.NodeList;
导入android.app.ListActivity;
导入android.app.ProgressDialog;
导入android.content.Context;
导入android.net.ConnectivityManager;
导入android.net.NetworkInfo;
导入android.os.AsyncTask;
导入android.os.Bundle;
导入android.widget.ListAdapter;
导入android.widget.ListView;
导入android.widget.simpledapter;
导入android.widget.Toast;
公共类更新扩展了ListActivity{
公共阵列列表;
公共列表适配器;
公共进程对话;
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.updates\u项);
mylist=新的ArrayList();
adapter=new simpledapter(this,mylist,R.layout.updates,
新字符串[]{“事件”,“通知”},
新int[]{R.id.event_title,R.id.notice});
最终ListView lv=getListView();
lv.setTextFilterEnabled(真);
/*lv.setOnItemClickListener(新的OnItemClickListener(){
public void onItemClick(AdapterView父对象、视图、int位置、长id){
@抑制警告(“未选中”)
HashMap o=(HashMap)lv.getItemAtPosition(位置);
Toast.makeText(Updates.this,“ID'”+o.get(“ID”)+“”已被单击。”,Toast.LENGTH_LONG.show();
}
});
*/        
progressDialog=progressDialog.show(Updates.this,“获取更新”,“请稍候…”);
新建GetDataTask().execute();
}
私有布尔isOnline(){
ConnectivityManager cm=(ConnectivityManager)getSystemService(Context.CONNECTIVITY_服务);
NetworkInfo ni=cm.getActiveNetworkInfo();
如果(ni!=null&&ni.isConnected())
返回true;
返回false;
}
私有类GetDataTask扩展了AsyncTask{
@凌驾
受保护的整数doInBackground(Void…params){
//模拟一些延迟
试一试{
《睡眠》(2000年);
}捕捉(中断异常e1){
e1.printStackTrace();
}
if(isOnline()){
mylist.clear();
字符串xml=XMLfunctions.getXML();
Document doc=XMLfunctions.XMLfromString(xml);
int numResults=XMLfunctions.numResults(doc);
如果((numResults删除

Toast.makeText(Updates.this, "No connection..", Toast.LENGTH_LONG).show();          
现在,在空的else中,使AsyncTask返回另一个值(如2)

如果将
return1;
移动到
If(isOnline()
)中,则可以去掉else,只需编写
return2;
,但这只是可读性问题

然后在
onPostExecute()
中,检查值是否为2,然后制作土司

    @Override
    protected void onPostExecute(Integer result) {
    if (result == 1){
        setListAdapter(adapter);
        progressDialog.dismiss();
        super.onPostExecute(result);
    }
    else
      Toast.makeText(Updates.this, "No connection..", Toast.LENGTH_LONG).show();          
    }

发布完整日志目录..添加完整日志目录。
else{
   return 2;
}
    @Override
    protected void onPostExecute(Integer result) {
    if (result == 1){
        setListAdapter(adapter);
        progressDialog.dismiss();
        super.onPostExecute(result);
    }
    else
      Toast.makeText(Updates.this, "No connection..", Toast.LENGTH_LONG).show();          
    }