如果调用 onActivityResult(),如何禁用 onResume() 调用
How to disable onResume() call if onActivityResult() is called
我在 onResume()
内部调用了刷新函数,如果用户最小化应用程序然后返回,它将刷新来自服务器的数据列表。问题是当用户从另一个 activity 返回时使用相同的功能但具有不同的参数(和不同的用例)。它只会部分刷新列表(不是所有数据)。如果调用 onActivityResult()
是否有可能阻止 onResume()
方法调用?
有一种方法可以实现,
onActivityResult
会在调用之前被调用
onResume
因此,您可以在那里添加一个标志并检查必要的条件。是否来自其他屏幕。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == 3214) {
cameFromOtherScreen = true; }
override fun onResume() {
super.onResume()
if(!cameFromOtherScreen) {
//do your thing }
}
首先像这样设置一个全局布尔变量:-
boolean isPaused = false;
现在在您的 activity 中设置一个方法:-
@Override
protected void onUserLeaveHint() {
isPaused = true;
super.onUserLeaveHint();
}
或在您的 onResume 方法中:-
@Override
protected void onResume() {
if(isPaused){
isPaused = false;
super.onResume();
}
}
我在 onResume()
内部调用了刷新函数,如果用户最小化应用程序然后返回,它将刷新来自服务器的数据列表。问题是当用户从另一个 activity 返回时使用相同的功能但具有不同的参数(和不同的用例)。它只会部分刷新列表(不是所有数据)。如果调用 onActivityResult()
是否有可能阻止 onResume()
方法调用?
有一种方法可以实现,
onActivityResult
会在调用之前被调用
onResume
因此,您可以在那里添加一个标志并检查必要的条件。是否来自其他屏幕。
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
super.onActivityResult(requestCode, resultCode, data)
if (resultCode == Activity.RESULT_OK && requestCode == 3214) {
cameFromOtherScreen = true; }
override fun onResume() {
super.onResume()
if(!cameFromOtherScreen) {
//do your thing }
}
首先像这样设置一个全局布尔变量:-
boolean isPaused = false;
现在在您的 activity 中设置一个方法:-
@Override
protected void onUserLeaveHint() {
isPaused = true;
super.onUserLeaveHint();
}
或在您的 onResume 方法中:-
@Override
protected void onResume() {
if(isPaused){
isPaused = false;
super.onResume();
}
}