FindViewById не работает в классе обслуживания в студии Android

Мне нужно показать веб-страницу с помощью WebView, которую я могу показать в MainActivity, но я хочу, чтобы этот WebView всегда работал в сервисе. хотите, чтобы закрыть службу запуска приложений и пользователя онлайн на веб-сайте как пользователь может оставаться в сети после закрытия приложения и запуска JavaScript на этом сайте

public class MainActivity extends AppCompatActivity {

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

        Intent intent = new Intent(this, MyService.class);
        startService(intent);

    }
}


public class MyService extends Service {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        WebView myWebView = (WebView) findViewById(R.id.webview1);
        myWebView.setWebViewClient(new WebViewClient());
        myWebView.getSettings().setJavaScriptEnabled(true);
        myWebView.getSettings().setLoadWithOverviewMode(true);
        myWebView.getSettings().setUseWideViewPort(true);
        myWebView.getSettings().setBuiltInZoomControls(true);
        myWebView.loadUrl("http://google.com");

        return Service.START_NOT_STICKY;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }
}

Нет, это плохая идея «работать с веб-просмотром в сервисе». Услуги предназначены для чего-то, что происходит на заднем плане. Представления (любые представления) предназначены для того, чтобы что-то показать пользователю. Нет пересечения с представлениями и сервисами, учитывая их естественные интересы, поэтому в сервисе не должно быть ничего похожего на findViewById. Вам нужно найти другое решение любой проблемы XY, которая есть у вас фактически.

M. Prokhorov 28.04.2018 14:54

findViewById может вызывать представление. И служба является фоновым компонентом, а не пользовательским интерфейсом. Что именно вам нужно? Отредактируйте свой вопрос.

ADM 28.04.2018 15:01

как пользователь может оставаться в сети после закрытия приложения и запуска JavaScript на этом сайте

MaHkooM 28.04.2018 16:26
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
3
72
0

Другие вопросы по теме