Android 如何从活动返回WebView?

Android 如何从活动返回WebView?,android,webview,Android,Webview,我不太清楚该怎么做,因为我到目前为止所做的一切都失败了 正如您在所附的图片中所看到的,大多数应用程序由一个webview和控制webview中应用程序中用户移动的Javascript组成 该应用程序在活动A中启动,然后转到活动Bas。您可以在步骤3中看到,设备摄像头打开,然后用户单击照片 单击照片后,我需要将用户带回webview。我还需要知道用户是否点击了任何图像,所以我需要将一些内容从活动B传递到活动A,一旦我知道如何访问webview,这并不是什么大问题 我试过了 setContentVi

我不太清楚该怎么做,因为我到目前为止所做的一切都失败了

正如您在所附的图片中所看到的,大多数应用程序由一个webview和控制webview中应用程序中用户移动的Javascript组成

该应用程序在活动A中启动,然后转到活动Bas。您可以在步骤3中看到,设备摄像头打开,然后用户单击照片

单击照片后,我需要将用户带回webview。我还需要知道用户是否点击了任何图像,所以我需要将一些内容从活动B传递到活动A,一旦我知道如何访问webview,这并不是什么大问题

我试过了

setContentView(R.layout.activity_A);
它将控制权带回活动A,活动A返回带有textview和webview的活动,但webview为空

我也试过webView.saveState和webView.restoreState,但也没用。然而,由于我正在跳过活动,我不确定我是否正确地实施了它

因此,我需要有人指导我如何回到webview,它需要与用户在进入活动B之前离开它时处于相同的状态。我已经被困在这个问题上太久了,我不想承认

这个问题的图解是。-Imgur链接,所以不允许我在这里发布图片

WebView活动的代码:

public class SpeditionActivity extends Activity {
private static String show = null;
AtomicBoolean isScanning=new AtomicBoolean(false);

@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
            WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.activity_audition);

    TextView textView = (TextView) findViewById(R.id.textView);
    textView.setText("Messages will appear here...");

    String page = "<html>"
            + "<head>"
            + "<script type='text/javascript' src='file:///android_asset/jquery.js'></script>"
            + "<script type='text/javascript' src='file:///android_asset/audition.js'></script>"
            + "<link rel='stylesheet' type='text/css' href='file:///android_asset/style.css'>"
            + "</head>" + "<body style='margin: 0; padding: 0;'></body>"
            + "</html>";

    final WebView webView = (WebView) findViewById(R.id.webView);
    webView.setOnKeyListener(new View.OnKeyListener() {
        @Override
        public boolean onKey(View v, int keyCode, KeyEvent event) {
            if(keyCode == KeyEvent.KEYCODE_BACK) {
                Log.d("Back Button", "Back button clicked..");
                webView.loadUrl("javascript:(function() { backKey(); })()");
                return true;
            }
            return false;
        }   
    });
    WebSettings webSettings = webView.getSettings();
    webSettings.setJavaScriptEnabled(true);
    webSettings.setDomStorageEnabled(true);
    webSettings.setUserAgentString("Audition 1.0");
    webView.addJavascriptInterface(new AuditionJs(this), "Audition");

    webView.loadDataWithBaseURL("http://www.url.com/audition", page,
            "text/html", "UTF-8", null);
    webView.setWebChromeClient(new WebChromeClient() {
        @SuppressWarnings("deprecation")
        public void onExceededDatabaseQuota(String url,
                String databaseIdentifier, long currentQuota,
                long estimatedSize, long totalUsedQuota,
                WebStorage.QuotaUpdater quotaUpdater) {
            quotaUpdater.updateQuota(estimatedSize * 2);
        }
        @Override
        public void onCloseWindow(WebView window) {
            AuditionActivity.this.finish();
        }
}

听起来好像您正在尝试捕获一张照片并显示来自

您可以向Android系统发送图像请求

Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
    startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
}
然后处理来自摄影机的结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
    Bundle extras = data.getExtras();
    Bitmap imageBitmap = (Bitmap) extras.get("data");
    mImageView.setImageBitmap(imageBitmap);
  }
}
编辑

单击结果可以使用发送到ActivityA

将在您离开时返回ActivityA并呼叫允许您检查标志

@Override
protected void onNewIntent (Intent intent) {
  boolean imageWasClicked = intent.getBooleanExtra(EXTRA_IMAGE_CLICKED, false);

你能分享webView活动的代码吗?@Kay我已经用代码更新了问题。你好,试试这个:我已经通过了那个阶段。我正在另一个活动中单击图像。我的问题是,如何使用图像返回到以前的活动。前面的活动主要是webview,我需要用户在单击照片之前查看屏幕上的位置。我希望我能很好地解释清楚。你是想把图像传回去,还是只是一个标志来指示图像是否被点击?不,我不需要发送图像,只要一个标志就可以了。@VivekPatel-我已经用说明更新了我的答案是,它返回到活动A,但webview现在处于问题中所附插图的步骤1中的状态。
@Override
protected void onNewIntent (Intent intent) {
  boolean imageWasClicked = intent.getBooleanExtra(EXTRA_IMAGE_CLICKED, false);