在Android活动之间移动的一些好策略

时间:2012-12-13 19:02:21

标签: android android-intent

好的我现在已经有这个问题了。我正在开发一款相机应用,可以进行一些验证并将照片上传到网站。

我的问题是,我一直遇到这样一个问题:制作一系列活动,每个活动都会返回完成前一个活动的结果,或者让每个活动返回主活动,这会产生下一个活动,具体取决于结果。

以下是一个示例:主要活动显示了一个照片库,您可以从中启动相机预览。捕获照片后,将打开另一个活动,您可以在其中验证是否要保存该照片。验证后,系统会显示另一个显示上传进度的活动。这可以作为一系列开始活动来实现:

图库 - >相机 - >验证 - >上传 - >验证 - >相机 - >廊

或作为:

图库 - >相机

相机 - >廊

图库 - >验证

验证 - >廊

图库 - >上传

上传 - >廊

2 个答案:

答案 0 :(得分:1)

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

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

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

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

简而言之,您应该首先考虑一下用户做什么。一旦你有一个关于用户如何使用你的应用程序的模糊模型,然后设计它来实现这一点。根据他们对API的理解,太多开发人员急于构建应用程序。这种方法是有限的。

答案 1 :(得分:0)

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

AsyncTask类http://developer.android.com/reference/android/os/AsyncTask.html真的可以帮助你做这样的操作: ActivityA - >网络连接和操作(在后台运行) - >在执行网络通信时显示进度条或类似内容(在您的情况下上传照片) - >在AsyncTask的onPostexecute()方法中启动另一个活动!

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

我希望这能回答你的问题!