我有一个 CropViewActivity
来裁剪图像,将裁剪后的图像保存到外部存储中。解码位图并将其保存到外部存储的过程是在另一个线程中完成的。因此,裁剪 Activity 结束,而图像处理仍在后台继续进行。现在我想要一种方法来通知我的另一个 Activity
,其中包含一个 ImageView
。在后台图像处理结束时,ImageView
应该从内存中获取保存的图像并加载它。
如何实现这种线程间暨 Activity 间通信?请帮忙..
最佳答案
有几种方法可以做到这一点。我想给你推荐一些。
- 完成图像处理后,您可以考虑使用
BroadcastReceiver
。您需要在包含ImageView
的 Activity 中注册接收器,并在另一个 Activity 中处理图像后,发送具有您正在监听接收的所需 Intent 的广播。这是 sample implementation关于如何实现BroadcastReceiver
。 - Activity 之间进行通信的另一种方式是启动 Activity 以获取结果。请参阅developers documentation了解如何使用
startActivityForResult
,然后从正在处理图像的 Activity 获取结果,并将结果返回给包含您案例中的ImageView
的调用 Activity 。
您可以根据您的用例选择最适合的这两个中的任何一个。希望有帮助。
关于java - 如何从另一个 Activity 触发一个 Activity 的方法调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50913625/