如何在互联网浏览器应用程序中使用“服务”

时间:2019-08-22 13:20:40

标签: java android

我是新手,所以请原谅我所做的任何错误或以错误的方式提出问题。

我最近在android studio上创建了一个简单的媒体播放器,并在关闭应用程序后使用Java Service播放媒体,并且效果很好。现在,我已经使用WebView创建了一个简单的Web浏览器应用程序,并且我希望使用相同的“ Java服务”来保持Web浏览器应用程序运行,即使将其最小化也是如此,但是我不知道如何转换媒体播放器代码在网络浏览器应用程序上使用。我已经研究了很多,似乎没有人愿意创建一个在后台运行的浏览器。请您能协助我解决这个问题吗?

因为我是Java新手,所以很难尝试将代码从媒体播放器转换为Web浏览器

这是我的媒体播放器代码:

MainActivity.java

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private Button start, stop;

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

        start = (Button) findViewById(R.id.buttonStartService);
        stop = (Button) findViewById(R.id.buttonStopService);


        start.setOnClickListener(this);
        stop.setOnClickListener(this);

    }

    @Override
    public void onClick(View view) {
        if (view == start){
            startService(new Intent(this, MyService.class));
        }else if(view == stop){
            stopService(new Intent(this, MyService.class));
        }
    }
}

MyService.java

public class MyService extends Service {

    private MediaPlayer player;

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

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        player = MediaPlayer.create(this, Settings.System.DEFAULT_RINGTONE_URI);
        player.setLooping(true);
        player.start();

        return START_STICKY;

    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        player.stop();
    }
}

这是我创建的Web浏览器的MainActivity:

public class MainActivity extends AppCompatActivity {

    WebView browser;
    EditText link;
    Button btn_visit;

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

        browser = (WebView) findViewById(R.id.webview);
        link = (EditText) findViewById(R.id.editTextLink);
        btn_visit = (Button) findViewById(R.id.btn_view);

        browser.setWebViewClient(new myWebViewClient());

        btn_visit.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                String url = link.getText().toString();
                browser.getSettings().setLoadsImagesAutomatically(true);
                browser.getSettings().setJavaScriptEnabled(true);

                browser.loadUrl(url);
            }
        });
    }

    private class myWebViewClient extends WebViewClient {

        @Override
        public boolean shouldOverrideUrlLoading(WebView view, String url) {
            view.loadUrl(url);
            return true;
        }
    }
}

```

So now I need to create another MyService that will allow the webbrowser to run in the 
background but dont know how to go about it: 
```


public class MyService extends Service {



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

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


    }

    @Override
    public void onDestroy() {

    }
}

正如我所说,在媒体播放器应用程序上没有出现任何错误。我只想能够在Internet浏览器应用程序上使用相同的代码,但不知道如何转换它。

0 个答案:

没有答案