Android耗时操作

无论使用什么方法建立子线程,考虑下面的问题。

问题一##

如何避免造成内存泄漏?
典型场景是在Activity中创建子线程,耗时操作结束前Activity被finish了。

解决方法一####

切断Activity与子线程的直接联系。
而子线程的创建必须要在主线程中,无论是new Thread还是AsnyckTask,因为Handler的创建必须在主线程。
那么就在Service中创建子线程,为了使Activity结束时不结束Service,只能使用startService。

解决方法二####

在耗时操作前禁止用户退出Activity。
比如百度贴吧发帖,服务器没返回发帖结果前,会一直有个禁止取消的Dialog。
简单暴力。如果产品没有意见,就这样办吧。

问题二##

如果使用方法一,那么回调结果如何改变UI?
关于Service能否直接改变UI,这似乎是一个随机事件……

你可能感兴趣的:(Android耗时操作)