android - 如何从广播接收器访问我的主要 Activity 中的 webview?

标签 android android-intent webview android-webview

我的需要是我有一个广播接收器和一个有 webview 的 Activity 。所以当接收者收到一些事件时,我需要将一些参数传递给 webivew 或运行一些 JS 代码。怎么做?

我无法找到一种方法来从接收器访问我的主要 Activity 中的 webview 对象。

最佳答案

您应该能够将广播接收器定义为 Activity 中的内部类。在同一 Activity 中,您应该引用广播接收器可以访问的 WebView。

public class MyActivity extends Activity {
    WebView mWebview;
    BroadcastReceiver mBroadcastReceiver;

    @Override
    protected void onCreate() {
    ...
    mWebView = (WebView) findViewById(R.id.webview);
    if (mBroadcastReceiver == null) {
        mBroadcastReceiver = new MyBroadcastReceiver();
    }
    ...
    }

    @Override
    public void onResume() {
        //register broadcast receiver
    }

    @Override
    public void onPause() {
        //unregister broadcast receiver
    }
    class MyBroadcastReceiver extends BroadcastReceiver {
         @Override
         onReceive(Intent intent) {
             //Receive intent here
             //Call instance of webview
             mWebView.doSomething();
         }
    }
}

此外,您还需要在 Activity 的 onResume() 方法中动态注册您的广播接收器,并在 onPause() 方法中注销它。

关于android - 如何从广播接收器访问我的主要 Activity 中的 webview?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31678593/

相关文章:

Android:普通蓝牙设备可以与 BLE 通信吗?

android - Hierarchy Viewer 中的绘制时间错误?

java - 通过主屏幕替换技术了解 Android 上的自定义锁实现

android - 启动驻留在单独库中的 Activity (Android)

android - 为什么主要 Activity 在其调用的 Intent 完成后再次重启(Android 4.2.2)?

java - 从android的webview访问JSON响应

android - 在ListView中获取位置过滤项

Activity 崩溃后android停止后台服务

android - 如何使用辅助功能选项在 WebView 中缩放字体?

java - Android:WebView 在中心加载图像/内容