我有父活动,当我点击按钮然后启动子活动startActivityForResult
。
所以问题是当我开始子活动时,父动作不再在堆栈上,当子活动返回结果时,没有父活动返回,所以我得到NullPointerException
。
我正在使用此cmd检查堆栈
adb shell dumpsys activity | grep -i run
当我运行其他一些活动时(来自我正在使用的其他sdk),我的应用程序在堆栈上有两个活动。
我如何实现该状态,以便我的自定义子活动返回到父级,并且当我调用子活动时父级活动不会从堆栈中获取?
运行活动时可能还有一些标志?有什么想法吗?
编辑:
开始主要活动(来自登录活动)
Intent intent = new Intent(appContext, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
appContext.startActivity(intent);
启动子活动(在这种情况下只是常规活动以进行测试):
Button scan = (Button) dialog.findViewById(R.id.dummy_layout);
scan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent cameraIntent = new Intent(MainActivity.getContext(),DummyActivity.class);
startActivity(cameraIntent);
}
});
清单中的活动:
<activity
android:name=".activity.MainActivity"
android:label="@string/title_activity_main" />
<activity
android:name=".activity.DummyActivity"
android:label="@string/title_activity_main"
/>
更新:
在我按下DummyActivity时调试的一个时刻,它们都在堆栈上,并且应用程序返回到MainActivity但是我之前在MainActivity中使用的对象都丢失了,所以我得到空指针。
似乎当我开始我的孩子活动时,我正在使用的所有床单都被系统自动解雇。
是的,我收到了大量的'android.os.PersistableBundle', referenced from method com.app.activity.MainActivity.access$super
错误。那可能是件事吗?