我有一个非常奇怪的问题,我无法完全解决。我已经思考了好几个小时,但我完全不知道为什么我的代码会像这样。
我有一个Viewpager
,可以从中删除图像,以产生实时更新的效果,每次删除照片时,我都会打开相同的活动,因此viewpager's
的内容将立即更改并相应地。
由于这个原因,我重写了onBackPressed()
以确保启动此方法时,用户返回到过去的真实活动,而不是原始图像的活动。我已经阅读了有关此内容的文章,并尝试执行一些操作,例如删除super方法并添加finish()方法,但似乎无济于事。
@Override
public void onBackPressed() {
//creates two instances of AccountApartementActivity
overridePendingTransition(0, 0);
add_button_view.setVisibility(View.INVISIBLE);
delete_button_view.setVisibility(View.INVISIBLE);
Intent i = new Intent(ApartementEditActivity.this, AccountAndApartementActivity.class);
i.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
i.putExtra("fromActivity", "2");
startActivity(i);
finish();
overridePendingTransition(0, 0);
}
在这两个活动的生命周期方法中,我都没有重写的代码编写了告诉应用程序两次创建相同活动的代码,或者我以某种方式忽略了它。
最奇怪的是,这一天前还可以,但是今天,我更改了PagerAdapter
方法内部的变量之一的数据类型,并且自从onBackPressed()
方法被破坏以来。
如果我缺少明显的东西,请告诉我,这经常发生。
答案 0 :(得分:0)
我认为以这种方式操纵活动堆栈不是最佳实践。您最终可能会耗尽内存。
我不知道您的照片是如何组织的,可能是使用诸如gridview或recyclerview的容器布局?
然后,您应该使用适配器和notifyDataSetChanged方法更新视图。
祝你好运!