Исправление NetworkOnMainThreadException без использования асин c кодов - PullRequest
1 голос
/ 06 января 2020

Я хочу, чтобы приложение использовало сетевую операцию в своем основном потоке, не вызывая исключения NetworkOnMainThreadException. Я не хочу использовать асин c коды, чтобы обойти это. Я слышал, что вы можете обойти исключение NetworkOnMainThreadException, не используя асин c коды, используя вместо этого этот код из ссылки на ответ: " Как исправить 'android .os.NetworkOnMainThreadException'? "

StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
StrictMode.setThreadPolicy(policy); 

В ответе указывалось, что вы можете использовать этот код в классе, и он будет игнорировать исключение NetworkOnMainThreadException, и код будет выполняться без проблем, но когда я попробовал его в своем классе, я получил ошибку «ожидаемый идентификатор» , Что я делаю не так?

package com.example.myapplication;

import androidx.appcompat.app.AppCompatActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.StrictMode;
import android.view.View;
import android.widget.EditText;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;

import java.io.IOException;


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

    }



    public class myClass {

        StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(policy);

        public void connect(View v) throws IOException {

            Document doc = Jsoup.connect("http://www.google.com//").get();

        }
    }


}
...