基本上我想在OnResume()中放置一些代码,只有当用户从这个片段调用的活动回来但是onResume()内的代码不能在Start
上执行时才会触发答案 0 :(得分:3)
您可以使用startActivityForResult
开始活动,并在您回来时调用onActivityResult
。
如果你想要你在onResume
中提到的行为,你可以使用布尔标志:
boolean started = false;
@Override
public void onResume() {
super.onResume();
if(started) {
//do your task
} else {
started = true;
}
}
但是onActivityResult
是做到这一点的好方法。
答案 1 :(得分:0)
这是一种相当黑客的技术,但它确实有效。
首先在类中声明一个布尔值:
private boolean isInitialized = false;
在onResume
中,检查值。如果为false,则将其设置为true。如果是,则执行所需的代码(底部的代码示例)。
记住片段生命周期:
onResume
是片段启动时的最后一个被调用事件。因此,必须在onResume
中调用所有这些才能正确使用(如果在onCreate中将布尔设置为true
,则在onResume
中始终为真,即使在第一次启动时也是如此)< / p>
基本上,您的onResume
方法应如下所示:
public void onResume(){
super.onResume();
if(!isInitialized) isInitialized = true;
else{
//Your code here
}
}