Android 不同版本,调用onActivityResult时无法恢复活动
我制作了一个android应用程序,带有一个按钮(用于扫描)和一个webview组件。 如果按下“扫描”按钮,它将执行startActivityForResult调用activity zxing扫描条形码和二维码。 zxing完成后,我编写了一个activityResult来处理数据 到目前为止,该应用程序在Android V2.2.2上运行良好,没有出现异常 但是,如果此应用程序在Android V2.3或V4.0.4上运行,则会出现异常(java.lang.RuntimeException:无法恢复活动)。 调用onActivityResult时将发生此异常 我已经打印了用于测试的全局变量(CURRENTWEBPAGE),发现在调用startActivityForResult之前,CURRENTWEBPAGE有值,但是 调用onActivityResult后,CURRENTWEBPAGE为空 我很好奇安卓的版本在这个案例中是否重要。 所有的全球成员都被清除了吗 遇到这种情况的人能给我一个解决这个问题的办法吗 如果您需要任何进一步的信息,请随时告诉我 如蒙答复,不胜感激 以下是我的应用程序代码Android 不同版本,调用onActivityResult时无法恢复活动,android,exception,Android,Exception,我制作了一个android应用程序,带有一个按钮(用于扫描)和一个webview组件。 如果按下“扫描”按钮,它将执行startActivityForResult调用activity zxing扫描条形码和二维码。 zxing完成后,我编写了一个activityResult来处理数据 到目前为止,该应用程序在Android V2.2.2上运行良好,没有出现异常 但是,如果此应用程序在Android V2.3或V4.0.4上运行,则会出现异常(java.lang.RuntimeException:
public class MyApp extends Activity
{
private String CURRENTWEBPAGE;//which will be set value whenvever webview changed.
private WebView webView_main;
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
initActivity_web();
...
...
}
public void initActivity_web()
{
// add Listener to button_SCAN
((Button) findViewById(R.id.button_SCAN)).setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
try
{
Intent intent = new Intent("com.google.zxing.client.android.SCAN");
Log.d(this.getClass().getName(),CURRENTWEBPAGE);
// CURRENTWEBPAGE has value here.
startActivityForResult(intent, 0);
}
catch (android.content.ActivityNotFoundException ex)
{
Toast popup = Toast.makeText(NEOMove.this, "Please install Zxing Barcode Scanner", Toast.LENGTH_SHORT);
popup.show();
}
}
});
}
@Override
public void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
if (requestCode == 0)
{
if (resultCode == RESULT_OK)
{
String QRCodeContent = intent.getStringExtra("SCAN_RESULT");
String newURL = convertToLCMOBILESUPPORTActionUrl(CURRENTWEBPAGE);//exception occur
//because CURRENTWEBPAGE = null;
//java.lang.RuntimeException: Unable to resume activity
webView_main.loadUrl(newURL + QRCodeContent);
}
else if (resultCode == RESULT_CANCELED)
{
// TODO Handle cancel
}
}
}
}
Add--2012/09/20 嗨, 我发现onCreate父应用程序(我的应用程序)将在onActivityResult之前调用。 尽管将这些变量保留在SharedReferences中,MyApp的webview还是使用新的会话id重新创建。 这对我来说不起作用,因为扫描条形码后,我需要发送一个请求,请求中有一个登录到已销毁webview缓存中的权限。 有没有办法使父应用程序不被销毁 以下是我的AndroidManifest.xml
<activity
android:name=".MyApp"
android:configChanges="orientation|keyboard"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
应用程序中的问题是android垃圾收集器已将调用活动从内存中删除。尝试将当前网页设置为静态
static private String CURRENTWEBPAGE;