对人关怀一次,比说千百句恭维话更能打动其心。——海涛法师
之前也说过了android使用闲置线程执行
今天上实战:
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 
 | package com.ruben.simple_webview;
 import android.content.Context;
 import android.os.Bundle;
 import android.os.Looper;
 import android.os.MessageQueue;
 import android.view.ViewGroup;
 import android.webkit.JavascriptInterface;
 import android.webkit.WebSettings;
 import android.webkit.WebView;
 import android.widget.Button;
 import android.widget.RelativeLayout;
 import android.widget.Toast;
 
 import androidx.appcompat.app.AppCompatActivity;
 
 public class MainActivity extends AppCompatActivity {
 
 private RelativeLayout mainLayout;
 private WebView myWebView;
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_main);
 
 mainLayout = (RelativeLayout) findViewById(R.id.main_layout);
 Button addWebViewButton = (Button) findViewById(R.id.addWebViewButton);
 
 
 prepareWebView();
 
 addWebViewButton.setOnClickListener(v -> {
 if (myWebView.getParent() == null) {
 
 RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams(
 ViewGroup.LayoutParams.MATCH_PARENT,
 ViewGroup.LayoutParams.MATCH_PARENT);
 myWebView.setLayoutParams(params);
 mainLayout.addView(myWebView);
 }
 });
 }
 
 private void prepareWebView() {
 myWebView = new WebView(new android.view.ContextThemeWrapper(this, null));
 WebSettings webSettings = myWebView.getSettings();
 webSettings.setJavaScriptEnabled(true);
 
 
 MessageQueue.IdleHandler idleHandler = () -> {
 myWebView.loadUrl("https://gitee.com/VampireAchao");
 myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");
 return false;
 };
 Looper.myQueue().addIdleHandler(idleHandler);
 }
 
 public class WebAppInterface {
 Context mContext;
 
 WebAppInterface(Context c) {
 mContext = c;
 }
 
 @JavascriptInterface
 public void showToast(String toast) {
 Toast.makeText(mContext, toast, Toast.LENGTH_SHORT).show();
 }
 }
 }
 
 
 | 
对应的activity_main.xml
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 
 | <?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
 android:id="@+id/main_layout"
 android:layout_height="match_parent">
 
 <Button
 android:id="@+id/addWebViewButton"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:text="Load WebView"
 android:layout_centerInParent="true" />
 </RelativeLayout>
 
 
 |