gpt4 book ai didi

Android:在 onResume() 期间执行不需要的功能的 Activity

转载 作者:行者123 更新时间:2023-11-30 03:48:12 35 4
gpt4 key购买 nike

我正在制作一个带有闪屏动画的应用。我给了用户取消动画的选项。

主屏幕 (Home) 有一个 TextView (tv) 。我在 onCreate() 期间设置文本,并在 onResume() 期间再次设置文本。

运行动画时,流程是:启动画面-> 主屏幕-> 其他 Activity 。电视的文本已设置,然后返回到主屏幕,它会“重新加载”并设置不同的文本。

取消动画时,从主屏幕开始:主屏幕->其他 Activity 。

问题:当动画被取消时,主屏幕在 onCreate() 期间在 tv2 中设置文本,然后在 onResume() 中再次设置它,即使我添加了一个“if”子句来防止这种情况发生.

代码如下:

public class Home extends Activity {
public static boolean reload = true;
EditText tv;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
tv= (EditText) findViewById(R.id.textViewFact);
tv.setText(updateText());
MORE STUFF ....
}

如果用户选择取消动画,则来自不同 Activity 的“重新加载”设置为 false。

现在是 onResume:

public void onResume(){
super.onResume();
Log.i("test", "home activity before if: " + Home.reload);

if(!reload){
Log.i("test", "home activity inside if: " + Home.reload);

return;
}
else{
Log.i("test", "home activity inside else: " + Home.reload);

tv.setText(updateText());
}
}

如您所见,updateText() 在 onCreate() 和 onResume() 中运行,但如果 reload 为 false(如您在以下 logcat 输出中看到的那样),它不应运行updateText() 再次。

01-30 08:44:50.140: I/test(551): home activity before if: false
01-30 08:44:50.140: I/test(551): home activity inside if: false
01-30 08:44:51.170: I/test(551): home activity before if: false
01-30 08:44:51.170: I/test(551): home activity inside if: false

我不知道为什么它会进入 onResume() 两次(根据日志输出,它确实如此),以及它是如何运行 updateText() 函数的,当它只在 ELSE 子句中时,根据日志输出,未达到。

最佳答案

事实证明,updateText() 再次被调用,不是从 onResume() 而是从 onCreate() 调用的,因为调用主屏幕的 Activity 没有正确完成,实际上是调用 Home Activity 开始两次。

谢谢大家的帮助。

关于Android:在 onResume() 期间执行不需要的功能的 Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14598669/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com