startActivityForResult()在android 9上的工作方式有所不同

时间:2019-05-06 13:04:53

标签: java android android-9.0-pie android-studio-3.4

我的应用程序可以在4到8.1的android手机上正常运行。 StartActivityForResult可以正常工作,并调用先前在目标活动中声明的意图,然后在我当前所在的活动中执行代码。 不幸的是,在装有Android 9的手机上,执行应用程序代码的顺序发生了变化。 首先,代码在activity1中执行,这将导致NullPointerException-然后调用该意图。 Activity2正在初始化导致空指针异常的对象:

Android 8.1序列:

Activity1 -> startActivityForResult -> Activity2 -> Result Activity1 -> Activity1 code -> OK

Android 9序列

Activity1 -> startActivityForResult -> Activity1 code (NullPointerException) -> (if I comment the code in Activity1 -> Activity 2 -> Result Activity1 )

我试图更改gradle文件,向意图添加标志,设置android.enableR8 = false,不幸的是没有帮助。

Intent i = new Intent(Activity1.this, Activity2.class);
i.putExtra("...", doc.id);
i.putExtra("...", method);
i.putExtra(Activity2.PARAMS, activity2SearchParams);
startActivityForResult(i, ActivityRequestCode.NEW);
targetSdkVersion 27

我想保留8.1的执行顺序。请帮忙。

0 个答案:

没有答案