Android 是否在加载其他活动时保存WebView?
我有一个webview,我用一个外部URL加载它,这样加载第一个页面,我点击一个链接进入第二个页面,然后点击第三个页面 现在在第三页上,我编写了一个Javascript来打开另一个运行良好的活动。 但在活动结束后,我的WebView再次重新加载第一页,该页应该是活动调用的同一页 你知道我做错了什么吗 提前谢谢Android 是否在加载其他活动时保存WebView?,android,android-activity,android-webview,Android,Android Activity,Android Webview,我有一个webview,我用一个外部URL加载它,这样加载第一个页面,我点击一个链接进入第二个页面,然后点击第三个页面 现在在第三页上,我编写了一个Javascript来打开另一个运行良好的活动。 但在活动结束后,我的WebView再次重新加载第一页,该页应该是活动调用的同一页 你知道我做错了什么吗 提前谢谢 import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileNotFoundExceptio
import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import android.R.bool;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.Bitmap.CompressFormat;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Base64;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;
import android.widget.Button;
import android.widget.Toast;
public class Cam2 extends Activity {
int CAMERA_PIC_REQUEST = 2;
WebView webview;
String imageSource;
boolean _hasImage = false;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
webview = (WebView) findViewById(R.id.webview);
webview.getSettings().setJavaScriptEnabled(true);
final Activity activity = this;
webview.setWebChromeClient(new WebChromeClient() {
public void onProgressChanged(WebView view, int progress) {
activity.setProgress(progress * 1000);
}
});
webview.setWebViewClient(new WebViewClient() {
public void onReceivedError(WebView view, int errorCode,
String description, String failingUrl) {
Toast.makeText(activity, "Oh no! " + description,
Toast.LENGTH_SHORT).show();
}
@Override
public void onPageFinished(WebView view, String url) {
if (_hasImage) {
webview.loadUrl("javascript:AndroidSubmitToWeb();");
}
}
});
webview.addJavascriptInterface(new JavaScriptInterface(this), "Android");
webview.loadUrl("http://192.168.0.5/SomeWeb");
}
public void openCamera() {
Intent cameraIntent = new Intent(
android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_PIC_REQUEST) {
Bitmap thumbnail = (Bitmap) data.getExtras().get("data");
String s = storeAndExit(thumbnail);
webview.loadUrl("javascript:function ImageData(){ return '" + s
+ "';}");
_hasImage = true;
} else {
Toast.makeText(Cam2.this, "Picture Not taken", 5000).show();
}
super.onActivityResult(requestCode, resultCode, data);
}
public String storeAndExit(Bitmap data) {
ByteArrayOutputStream jpeg_data = new ByteArrayOutputStream();
Bitmap myMap = data;
try {
if (myMap.compress(CompressFormat.JPEG, 70, jpeg_data)) {
byte[] code = jpeg_data.toByteArray();
byte[] output = org.apache.commons.codec.binary.Base64
.encodeBase64(code);
String js_out = new String(output);
return js_out;
}
} catch (Exception e) {
Toast.makeText(Cam2.this,
"STORE IMAGE EXCEPTION: " + e.getMessage(), 5000).show();
}
finish();
return null;
}
}
我想你应该用onCreate()方法 该web视图已创建并显示网页 你只需要检查一下就行了 致以最良好的祝愿
~Anup请检查在退出第二个活动时是否再次调用onCreate()。你的意思是我必须检查是否创建了WebView,如果创建了,则不执行其他操作加载URL,对吗?是否在创建另一个活动时销毁了第一个活动如果是,请不要这样做Hi-Anup,谢谢你的帮助,我已经编辑了我的文章和代码。我是Android的初学者