gpt4 book ai didi

java - 如何不用浏览器后台打开一个有IP的url?

转载 作者:行者123 更新时间:2023-11-30 03:06:40 25 4
gpt4 key购买 nike

我有这段代码让 android 打开一个 url,但我无法让它在后台运行。是否可以?有人可以帮我弄这个吗?谢谢。

public void goToSu (View view) {
goToUrl("http://192.168.2.66/index.html?o0=0");
}

private void goToUrl (String url) {
Uri uriUrl = Uri.parse(url);
Intent background = new Intent(Intent.ACTION_VIEW, uriUrl);
startActivity(background);
}

最佳答案

您不能在您的主 UI 中进行网络操作,因为这会阻止您的程序执行,给您的用户带来非常恶心的体验。为此,您必须在 Thread 中分离网络操作,如果您刚刚开始使用线程世界,则更好的方法是在 AsyncTask 中分离网络操作。

这是您将使用的结构:

final class MyNetworkOperation extends AsyncTask<URL, Integer, Void> {
@Override
protected void onPreExecute(final Void param) {
...
}

@Override
protected Void doInBackground(final URL... args) {
...
return null;
}

@Override
protected void onPostExecute(final Void param) {
...
}
}

甚至方法名称也很容易解释。当你定义你的 AsyncTask 并调用 .execute(url_object) 时,第一个调用的方法将是 .onPreExecute(),你可以在那里初始化变量并准备一切您要执行的网络操作。网络操作的hard 部分应该在doInBackground() 中完成。在那里你连接,进行数据传输并与主机断开连接。最后,onPostExecute() 被调用:完成后,您可以在这里处理您的结果(将其传输到主 Activity,显示对话框等)。

有关 AsyncTasks 的更多信息(并了解这些参数的含义),我强烈建议阅读 reference .

可能会找到一个很好的例子here .

关于java - 如何不用浏览器后台打开一个有IP的url?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21704838/

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