gpt4 book ai didi

没有互联网连接时android应用程序强制终止

转载 作者:太空狗 更新时间:2023-10-29 13:21:51 25 4
gpt4 key购买 nike

当没有互联网连接时,我的应用程序不会运行,当用户关闭互联网连接而应用程序仍在运行时,它就会终止。

protected void onHandleIntent(Intent intent)
{

Log.d(Constants.TAG, "Service started");

List<RssItem> rssItems = null ;
try {
PcWorldRssParser parser = new PcWorldRssParser();
if(flag == 0) {
rssItems = parser.parse(getInputStream(RSS_LINK));
}
else if(flag == 2){
rssItems = parser.parse(getInputStream(RSS_LINK2));
}
else if(flag == 3){
rssItems = parser.parse(getInputStream(RSS_LINK3));
}
else if(flag == 4){
rssItems = parser.parse(getInputStream(RSS_LINK4));
}
else if(flag == 5){
rssItems = parser.parse(getInputStream(RSS_LINK5));
}
else if(flag == 6){
rssItems = parser.parse(getInputStream(RSS_LINK6));
}
else if(flag == 7){
rssItems = parser.parse(getInputStream(RSS_LINK7));
}
else if(flag == 8){
rssItems = parser.parse(getInputStream(RSS_LINK8));
}
else if(flag == 9){
rssItems = parser.parse(getInputStream(RSS_LINK9));
}
} catch (XmlPullParserException e) {
Log.w(e.getMessage(), e);
} catch (IOException e) {
Log.w(e.getMessage(), e);
}
Bundle bundle = new Bundle();
bundle.putSerializable(ITEMS, (Serializable) rssItems);
ResultReceiver receiver = intent.getParcelableExtra(RECEIVER);
receiver.send(0, bundle);
}

RssParser 类:

public List<RssItem> parse(InputStream inputStream) throws XmlPullParserException, IOException {
try {
XmlPullParser parser = Xml.newPullParser();
parser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
parser.setInput(inputStream, null);
parser.nextTag();
return readFeed(parser);

} finally {

inputStream.close();

}
}

在这两种方法中,我得到一个 NullPointerException 在:

inputStream.close();
rssItems = parser.parse(getInputStream(RSS_LINK));

最佳答案

你可以把这个放在你所有的else ifs

try {
rssItems = parser.parse(getInputStream(RSS_LINK));
}catch (XmlPullParserException e){
throw new RuntimeException("Error"+ e.getMessage());
}catch (IOException e){
throw new RuntimeException("Error"+ e.getMessage());
}catch (NullPointerException e){
Log.d("Error in RSS_LINK","");
}

您需要上述代码才能正确处理所有可能的异常。

此外,您还应该将 if else if 代码更改为 switch case,因为您有许多 else ifs 并不断检查,这样会更简单如果将它们转换为 switch case

,则阅读速度更快

关于没有互联网连接时android应用程序强制终止,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com