如何从广播接收器访问我的 main activity 中的 webview?
How to access the webview in my main activity from a Broadcast receiver?
我需要有一个广播接收器和一个具有网络视图的 activity。所以当接收者收到一些事件时,我需要将一些参数传递给 webivew 或 运行 一些 JS 代码。怎么做?
我无法找到从接收器访问我的主 activity 中的 webview 对象的方法。
您应该能够在 activity 中将广播接收器定义为内部 class。在同一个 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() 方法中注销它。
我需要有一个广播接收器和一个具有网络视图的 activity。所以当接收者收到一些事件时,我需要将一些参数传递给 webivew 或 运行 一些 JS 代码。怎么做?
我无法找到从接收器访问我的主 activity 中的 webview 对象的方法。
您应该能够在 activity 中将广播接收器定义为内部 class。在同一个 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() 方法中注销它。