2012-12-13 34 views
0

好的我已经有一段时间了现在这个问题。我正在开发一个相机应用程序,它可以进行一些验证并将照片上传到网站。在Android活动之间移动的一些很好的策略

我的问题是,我一直在讨论如何使一系列活动返回到前一活动的结果,或使每个活动返回到产生下一活动的主活动,这取决于结果。

下面是一个示例:主要活动显示一个照片库,您可以从该照片库启动相机预览。捕捉照片后,打开另一个活动,您可以验证是否要保存该照片。验证之后,您会看到另一个显示上传进度的活动。这可以被实现为startactivityforresults链:

画廊 - >相机 - >验证 - >上传 - >验证 - >相机 - >画廊

OR为:

画廊 - >相机

相机 - >画廊

画廊 - >验证

验证 - >画廊

画廊 - >上传

上传 - >画廊

回答

1

不要使用活动以显示上传进度。使用ProgressDialog,或者更好的是将操作卸载到后台的IntentService中。记住在尝试上传之前检查网络连接!

作为“验证”保存的替代方法,您可以自动保存并允许用户“撤消”保存。用户体验指南表明,交互越少越好,特别是在小型设备上。

您也可以将所有照片从“会话”保存到本地存储,然后允许用户稍后或异步地上传照片。

除此之外,如果您想允许用户在步骤之间随意来回移动,并且每个步骤都保持其状态,您可能需要单独的活动/片段。

总之,你应该先花点时间思考用户做什么。一旦你有一个用户想要使用你的应用程序的模糊模型,然后设计它来实现这一点。太多的开发人员根据他们对API的理解急于构建应用程序。这种做法是有限的。

0

您是否每次要关闭活动时都调用activity.finish()? 您是否使用AsyncTask类来执行网络通信并显示上传进度栏,然后启动另一个活动?

的的AsyncTask类http://developer.android.com/reference/android/os/AsyncTask.html真正帮助你做这样的操作: ActivityA - >网络连接和操作(在研究背景中运行) - >显示进度条或类似在进行网络通信的东西(在你的情况下上传照片) - >在AsyncTask的onPostexecute()方法中启动另一个活动!

这确实可以帮助您从应用程序的活动和安全行为中获得稳定的转换!

我希望这回答你的问题!