-2

Пожалуйста, помогите мне. Существует простое приложение, которое отображается, нажав кнопку на странице HTML-кода TextView. Я пытаюсь запустить на Android 2.3 ... работает. Но в Android-версии 4.2 с нажатием на ошибку происходит «К сожалению, имя_псп остановлено».URLConnection Android 4.2 не работает

MainActivity.java

public class MainActivity extends Activity { 
    TextView txtview; 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 

     txtview = (TextView) findViewById(R.id.txtview); 

    } 
    public void OnClickBtn (View v) { 
     URL url = null; 
     try { 
      url = new URL("http://ya.ru/"); 
      URLConnection con1 = url.openConnection(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(con1.getInputStream())); 
      String line = ""; 
      while ((line = reader.readLine()) != null){ 
       txtview.append(line); 
      } 
     } catch (Exception e){ 

     } 
    } 
} 

Manifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
      package="com.example.test"> 
    <uses-sdk android:minSdkVersion="10" android:targetSdkVersion="17" android:maxSdkVersion="17"/> 
    <application android:icon="@drawable/icon" android:label="@string/app_name"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN"/> 
       <category android:name="android.intent.category.LAUNCHER"/> 
      </intent-filter> 
     </activity> 
    </application> 
    <uses-permission android:name="android.permission.INTERNET"></uses-permission> 
</manifest> 

Может быть, это в Android SDK. Я пишу другое приложение, в котором вы хотите запросить в Интернете. На Android 2.3 работает, но не работает в версии 4.2.

+2

Дубликат [android.os.NetworkOnMainThreadException] (http://stackoverflow.com/questions/6343166/android-os-networkonmainthreadexception) – 323go

ответ

1

В версии 3.0+ вы не можете запускать HTTP-запросы в основном потоке - вы должны сделать это в AsyncTask или Thread, иначе оно выдает исключение.

 Смежные вопросы

  • Нет связанных вопросов^_^