Android 安卓如何点击网址?不打开浏览器

Android 安卓如何点击网址?不打开浏览器,android,networkonmainthread,hit,Android,Networkonmainthread,Hit,这给了我爱欲之类的东西 try { URL myURL = new URL("myURL that works fine on browser"); URLConnection myURLConnection = myURL.openConnection(); myURLConnection.connect(); } catch (MalformedURLException e) { // new URL() failed // ... } catch (

这给了我爱欲之类的东西

try {
    URL myURL = new URL("myURL that works fine on browser");
    URLConnection myURLConnection = myURL.openConnection();
    myURLConnection.connect();
} catch (MalformedURLException e) {
    // new URL() failed
    // ...
} catch (IOException e) {
    // openConnection() failed
    // ...
}
04-05 17:18:41.687:E/AndroidRuntime(11568):致命异常:main
04-05 17:18:41.687:E/AndroidRuntime(11568):android.os.NetworkOnMainThreadException
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于java.net.InetAddress.lookupHostByName(InetAddress.java:410)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于java.net.InetAddress.getAllByNameImpl(InetAddress.java:241)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于java.net.InetAddress.getAllByName(InetAddress.java:219)
04-05 17:18:41.687:E/AndroidRuntime(11568):在libcore.net.http.HttpConnection.(HttpConnection.java:70)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于libcore.net.http.HttpConnection.(HttpConnection.java:50)
04-05 17:18:41.687:E/AndroidRuntime(11568):在libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
04-05 17:18:41.687:E/AndroidRuntime(11568):在libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
04-05 17:18:41.687:E/AndroidRuntime(11568):在libcore.net.http.HttpConnection.connect(HttpConnection.java:128)上
04-05 17:18:41.687:E/AndroidRuntime(11568):位于libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
04-05 17:18:41.687:E/AndroidRuntime(11568):在libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
04-05 17:18:41.687:E/AndroidRuntime(11568):在com.leeway.hdwallper.Test_My_Paging_Activity$1.onClick(Test_My_Paging_Activity.java:89)
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.view.view.performClick(view.java:4171)
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.view.view$PerformClick.run(view.java:17195)
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.os.Handler.handleCallback(Handler.java:643)上
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.os.Handler.dispatchMessage(Handler.java:92)上
04-05 17:18:41.687:E/AndroidRuntime(11568):在android.os.Looper.loop(Looper.java:137)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于android.app.ActivityThread.main(ActivityThread.java:4803)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于java.lang.reflect.Method.Invokenactive(本机方法)
04-05 17:18:41.687:E/AndroidRuntime(11568):在java.lang.reflect.Method.invoke(Method.java:511)
04-05 17:18:41.687:E/AndroidRuntime(11568):在com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
04-05 17:18:41.687:E/AndroidRuntime(11568):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
04-05 17:18:41.687:E/AndroidRuntime(11568):在dalvik.system.NativeStart.main(本机方法)

这不是重复的,因为我想要简单的点击无异步任务或解析

使用
异步任务
。您可以将其设置为静态内部类,也可以将其设置为自己的完整类。您需要添加
try
/
catch
es等,但这应该可以

04-05 17:18:41.687: E/AndroidRuntime(11568): FATAL EXCEPTION: main
04-05 17:18:41.687: E/AndroidRuntime(11568): android.os.NetworkOnMainThreadException
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1117)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at java.net.InetAddress.lookupHostByName(InetAddress.java:410)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at java.net.InetAddress.getAllByNameImpl(InetAddress.java:241)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at java.net.InetAddress.getAllByName(InetAddress.java:219)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:70)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpConnection.<init>(HttpConnection.java:50)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpConnection$Address.connect(HttpConnection.java:340)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpConnectionPool.get(HttpConnectionPool.java:87)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpConnection.connect(HttpConnection.java:128)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpEngine.openSocketConnection(HttpEngine.java:315)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpEngine.connect(HttpEngine.java:310)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpEngine.sendSocketRequest(HttpEngine.java:289)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpEngine.sendRequest(HttpEngine.java:239)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at libcore.net.http.HttpURLConnectionImpl.connect(HttpURLConnectionImpl.java:80)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at com.leeway.hdwallpaper.Test_My_Paging_Activity$1.onClick(Test_My_Paging_Activity.java:89)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.view.View.performClick(View.java:4171)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.view.View$PerformClick.run(View.java:17195)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.os.Handler.handleCallback(Handler.java:643)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.os.Handler.dispatchMessage(Handler.java:92)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.os.Looper.loop(Looper.java:137)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at android.app.ActivityThread.main(ActivityThread.java:4803)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at java.lang.reflect.Method.invokeNative(Native Method)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at java.lang.reflect.Method.invoke(Method.java:511)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:789)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:556)
04-05 17:18:41.687: E/AndroidRuntime(11568):    at dalvik.system.NativeStart.main(Native Method)
URL myURL=newurl(“在浏览器上运行良好的myURL”);
新建UrlPinger(myUrl.execute();
类UrlPinger扩展了异步任务{
@凌驾
受保护的Void doInBackground(URL…URL){
URLConnection myURLConnection=URL[0]。openConnection();
myURLConnection.connect();
返回null;
}
}

不使用任何解析或异步任务您需要使用
异步任务
或一些后台线程。通过查看堆栈跟踪,查看
NetworkOnMainThreadException
,然后阅读重复的问题及其答案,可以看出这一点。重复问题是重复的,因为它涵盖了出现
NetworkOnMainThreadException
的原因以及如何处理。您可以通过实际阅读该问题及其答案来说明这一点。请问您为什么不想使用AsyncTask?这是一种预防措施,用于防止在事务处理过程中连接出错时UI线程冻结。@Pragna您需要使用
AsyncTask
。因为您无法在
主线程中执行网络UI操作
。请注意,无论何时执行网络相关操作,都必须使用
线程
异步任务
。openConnection我没有在URLConnection上获得openConnection方法myURLConnection=URL[0]。openConnection();忘了cap
URL
…你能解释一下吗?无法理解基本上,URL是由
URL
组成的数组。第一个可能是您所关心的,因此URL[0]是您感兴趣的URL。它是一个与任何URL对象相同的URL。但是我错过了一个上限,而且只有
Url
,这会导致问题。
URL myURL = new URL("myURL that works fine on browser");
new UrlPinger(myUrl).execute();

class UrlPinger extends AsyncTask<URL,Void,Void> {
    @Override
    protected Void doInBackground (URL ... urls) {
        URLConnection myURLConnection = urls[0].openConnection();
        myURLConnection.connect();
        return null;
    }
}