我想在下面调用函数。

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


它对我不起作用。

最佳答案

你可以试试这个选项

意图

..............

您使用startActivityForResult从另一个活动中打开了新活动。在这种情况下,您只需从代码中调用finishActivity()函数,它将带您回到上一个活动。

仅当您从主要活动开始第二个活动时,它才起作用

关于java - 是否存在从其他Activity类访问MainActivity的解决方案?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58744074/

10-10 10:23