gpt4 book ai didi

android - 从浏览器返回时应用程序崩溃

转载 作者:太空狗 更新时间:2023-10-29 16:16:18 25 4
gpt4 key购买 nike

我有 Main Activity 可以打开这样的 fragment 。

Fragment fragment = null;

FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);

switch (position) {
case 0:
fragment = new MyFragment();
break;
default:
break;
}

if (fragment != null) {
fragmentManager.beginTransaction().replace(R.id.frame_container,fragment).commit();

}

此 fragment 包含一个 ListView 。在点击列表项 New Activity Opened like this.

Intent intent = new Intent(getActivity(), MyActivity.class);
startActivity(intent);

从这个 Activity 中,我在浏览器中打开了一个这样的链接。

Intent browserIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(url));
startActivity(browserIntent);

问题来了。如果我们打开一个简单的 Web 链接,它可以正常工作,但如果链接包含 Play Store 的应用程序链接,则从浏览器返回时应用程序会崩溃。在 Htc 和 Nexus 设备上,它运行良好,但在三星 S3 上,应用程序在从浏览器返回时崩溃。

从调试中我发现我的 Main fragment 在 Samsung S3 设备上是空的。

我的 Log Cat 显示了这一点。

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.codenterprise.CashbackKorting/com.codenterprise.left.fragment.shops.ShopComplateDetailActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2100)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2125)
at android.app.ActivityThread.access$600(ActivityThread.java:140)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1227)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4898)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1006)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:773)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.NullPointerException
at com.codenterprise.general.Services.<init>(Services.java:74)
at com.codenterprise.general.Services.<init>(Services.java:70)
at com.codenterprise.left.fragment.shops.ShopComplateDetailActivity.onCreate(ShopComplateDetailActivity.java:90)
at android.app.Activity.performCreate(Activity.java:5206)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1083)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2064)

谢谢

最佳答案

当您的应用程序进入后台时,内存较少的设备会终止您的应用程序以节省内存。因此,请尝试在进入浏览器之前和之后保存和恢复应用程序的状态,如下面的代码所示

保存状态

 @Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}

并在同一 Activity 中检索它

@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}

关于android - 从浏览器返回时应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26190450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com