我有2个活动,第一个是从用户那里获取图像。第二个活动从谷歌地图获取数据。但是,如果我使用意图从第一个活动调用第二个活动,而又使用另一个意图返回第一个活动,则数据消失了。有什么方法可以保存图像和第二个活动返回的数据?
最佳答案
有几个选项。您现在可能最容易访问的是使用共享首选项:
SharedPreferences prefs = this.getSharedPreferences("com.your.app", Context.MODE_PRIVATE);
byte[] image; // populate this byte array with your image
String key = "myimagekey";
String imgString = new String(image, "UTF-8");
prefs.edit().putString(key, imgString).apply();
这将包含图像的字节数组存储为字符串。然后,在下一个活动中,您可以通过以下方式检索它:
String img = prefs.getString(key, null);
另一个选择,也许是更多的工作,将是配置您的应用程序可以使用的SQLite数据库。然后,您可以简单地将图像作为BLOB插入到某个表中,然后在下一个活动中从同一表中读取。