我想在下面调用函数。
mobileView.loadUrl("javascript:setUserId () ");
mobileView在MainActivity中。
public class MainActivity extends AppCompatActivity {
private WebView mobileView;
}
我想在SecondActivity完成之后调用上面的函数。
public class SecondActivity extends AppCompatActivity {
...
private void getUserId () {
...
finish();
}
}
SecondActivity从AReceiver开始。
public class AReceiver extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
...
Intent i = new Intent(context, SecondActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
...
context.startActivity(i);
}
}
然后下面的代码调用AReceiver ...
class MainActivity {
...
private void userId () {
...
intent = new Intent(MainActivity.this, AReceiver.class);
pendingIntent = PendingIntent.getBroadcast(
MainActivity.this,
alarmID,
intent,
PendingIntent.FLAG_UPDATE_CURRENT
);
alarmManager.set(
AlarmManager.RTC_WAKEUP,
mCalendar.getTimeInMillis(),
pendingIntent
);
...
}
...
}
但是我不知道如何从SecondActivity访问mobileView。 有什么解决办法吗?
我尝试过的...
private webView mobileView
到
public webView mobileView
2。 使用
从SecondActivity调用MainActivity.mobileView
这对我不起作用。
答案 0 :(得分:1)
您可以尝试此选项
意图
..............
您使用 startActivityForResult 从另一个活动中打开了新活动。在这种情况下,您只需从代码中调用f inishActivity()函数,它会将您带回到上一个活动。
仅当您从主要活动开始第二个活动时,该功能才起作用
答案 1 :(得分:0)
我使用当地的广泛演员经理解决了这个问题! :D 谢谢@Shripad Jadhav,他帮助了这个答案。
下面的描述是解决方案!希望它能帮助到别人。 :D
MainActivity.java
public class MainActivity extends AppCompatActivity {
private WebView wv;
@Override
protected void onCreate(Bundle savedInstanceState) {
...
LocalBroadcastManager.getInstance(this)
.registerReceiver(mBroadcastReceiver, new IntentFilter("webview-filter"));
...
}
...
private BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
mv.loadUrl("javascript: loadMainData ()");
}
};
@Override
protected void onDestroy() {
LocalBroadcastManager.getInstance(this).unregisterReceiver(mBroadcastReceiver);
super.onDestroy();
}
}
SecondActivity.java
public class SecondActivity extends AppCompatActivity {
private void someFunction () {
sendMessage ();
}
...
private void sendMessage() {
Log.d("sender", "Broadcasting message");
Intent intent = new Intent("webview-filter");
LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
}
...
}