gpt4 book ai didi

android - BOOT_COMPLETED 中 HTTP 请求期间的 IOException

转载 作者:行者123 更新时间:2023-11-29 18:16:27 24 4
gpt4 key购买 nike

我有一个 Android 应用程序,其中包含将数据发布到服务器的语句。

HttpResponse httpresponse = httpclient.execute(httppost);

当我启动应用程序时,这条语句执行得很好。我已经让我的应用程序在启动后自动启动。当它启动时,我在这一行收到一个 IOEXCeption,消息是我的主机名。当我手动启动应用程序时,主机一直在运行,因为相同的语句工作正常。此问题仅在手机启动时出现。

有没有人遇到过这个问题?


CommansWare, 我的 onReceive 调用中有这个新方法来检查网络连接。有了这个我的问题就解决了,这意味着它发布了“启动完成”消息并继续成功执行 http 请求,但看起来它没有退出,而看起来“不在线”消息无休止地出现。怎么会发生?这不是正确的解决方案吗?

public void onReceive(Context context, Intent intent) 
{
while(!isOnline(context) )
{
Toast toast = Toast.makeText(context, "Not online", Toast.LENGTH_SHORT);
toast.show();
}

Toast toast = Toast.makeText(context, "in boot completed", Toast.LENGTH_SHORT);
toast.show();

}
}

protected boolean isOnline(Context context) {

ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo netInfo = cm.getActiveNetworkInfo();
if (netInfo != null && netInfo.isConnected())
{
Toast toast = Toast.makeText(context, "returned true", Toast.LENGTH_SHORT);
toast.show();
return true;
}
else
{
Toast toast = Toast.makeText(context, "returned false", Toast.LENGTH_SHORT);
toast.show();
return false;
}
}

最佳答案

此时可能没有 Activity 的 Internet 连接。毕竟设备刚从关机状态开机。这与任何其他操作系统都没有什么不同。

您可能需要做一些事情来延迟您的 HTTP 操作,直到 Internet 连接可用。例如,您的 BOOT_COMPLETED 接收器可以使用 AlarmManagerset() 安排在几分钟内再次获得控制权,届时设备希望会更稳定。当然,您还需要使用 ConnectivityManager 来确定此时是否有 Internet 连接,您可能更愿意做一些复杂的接收器工作来监听 ConnectivityManager 广播,也许比使用 AlarmManager 路由更快地完成 HTTP 工作。

关于android - BOOT_COMPLETED 中 HTTP 请求期间的 IOException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7829786/

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