我有一个活动A和活动B.在活动A中,我将一些数据保存在应用程序类中,然后转到活动B.
在活动B中,当我来自活动A时,我能够访问我在应用程序类中保存的数据,
活动B中有一个按钮来捕捉图像。当我捕获图像并在捕获后返回活动B时,应用程序类返回null并且我无法再次获取数据。
申请类代码:
public void saveSelectedSalonDetail(SalonDetailsModel salonDetail){
this.salonDetails = salonDetail;
}
public SalonDetailsModel getSalonDetails(){
Log.e("salon details ",this.salonDetails.getBusinessName());
return salonDetails;
}
活动代码: - 在应用程序类中保存数据
((AppController) getApplicationContext()).saveSelectedSalonDetail(salonDetailsModel);
活动B代码: -
AppController appController = (AppController)getApplication();
SalonDetailsModel salonDetailsModel = appController.getSalonDetails();
String salonTitle = salonDetailsModel.getBusinessName();
当我来自活动A时,上面的行返回值但是当我在捕获图片后进入活动b时,同一行返回null。
答案 0 :(得分:0)
活动B中有一个按钮来捕捉图像。当我捕获图像并在捕获后返回活动B时,应用程序类返回null并且我无法再次获取数据。
我假设您使用ACTION_IMAGE_CAPTURE
来捕获图像。在这种情况下,您的行为是完全正常的。
如果您的应用程序在前台没有活动,则可以终止您的应用程序进程。这包括相机应用程序在前台时。
在static
字段或Application
子类中存储数据是可以的,只要您不泄漏内存和,只要您只将其用于缓存 。如果您的数据需要在流程终止后继续存在,则需要制定计划,将数据存储在流程之外(例如,数据库,首选项,其他类型的文件,Internet)。