1

幸运的是,backstack 的默认行为不需要我为我的应用程序编写任何特殊情况处理(尽管我确实想删除第一个屏幕,这是启动画面,但我会弄清楚的)。

但是,现在我正在以“常规”方式(作为单独的流程/活动而不是新的片段/集成样式)启动相机和地图

Intent intent = new Intent(Android.Content.Intent.ActionView, Uri.Parse(url));
intent.SetClassName("com.google.android.apps.maps", "com.google.android.maps.MapsActivity");

StartActivityForResult(intent,(int)ActivityRequestCode.Map);

_imageFile = new File(_imageDir, String.Format("attachment_{0}.jpg", Guid.NewGuid()));

Intent intent = new Intent(MediaStore.ActionImageCapture);
intent.PutExtra(MediaStore.ExtraOutput, Uri.FromFile(_imageFile));

StartActivityForResult(intent, (int)ActivityRequestCode.Camera);

我遇到了一些我认为需要一些后台管理的情况,因此想知道是否有一些基本策略可以做到这一点。

第一期

当相机返回时(通过用户在相机应用程序中按“完成”),并且控制权返回给我的应用程序,并且正在显示包含 viewpager 的视图,如果用户滚动寻呼机,程序会崩溃(闪烁并重新启动)相机关闭后过早(仍需要以受控方式复制并获取日志)。

第 2 期

如果我启动地图然后使用后退按钮返回到我的应用程序,它的当前视图似乎会在堆栈上重复。也就是说,在返回到我的应用程序后,如果我点击后退按钮,当前视图将被弹出(由“卡片幻灯片”动画确认”)并且同一视图的副本将在堆栈中的下一个(所以我基​​本上必须回击两次才能“走出”视野)。

我需要在我的应用程序中构建一些标准的 backstack 功能来解决这个问题吗?

注意:我已经在后台看到了超级深入的幻灯片(嗯,上半部分),当我挖掘它时会发布它的链接,所以我知道它的一般文档。

谢谢你。

4

0 回答 0