gpt4 book ai didi

java - 如何更改图像并在 5 秒后重新运行线程中的主要 Activity 后不返回到 android 中的基本布局

转载 作者:行者123 更新时间:2023-12-01 10:14:23 24 4
gpt4 key购买 nike

因此,我正在创建一个应用程序,从我的 AsyncTask 中获取字符串,该字符串是我在 MainActivity 类中创建为子类的,以便获取我收到的变量来自网络。根据我得到的变量,我每 5 秒相应地更改图像。现在任务已成功,但在 Activity 刷新时,我不断获得在 activity_main.xml 中创建的默认布局,并且它再次更改为我想要的布局。在下面发布我的代码。

Thread thread = new Thread() { //thread I am running every 5 secs
@Override
public void run() {
try {
synchronized (this) {
wait(5000);
syncapp sa = new syncapp(); //AsyncTask to get String from Internet
sa.execute();
}
} catch (InterruptedException e) {
e.printStackTrace();
}
Intent mainActivity = new Intent(getApplicationContext(), MainActivity.class); //Creating intent to restart the activity (Need a workaround if possible)
startActivity(mainActivity);
}

;
};
thread.start();



}
public void setImage(String str) //Function I will call to change Image
{
vacancy =0;
b = a.toCharArray();
for (int i = 0; i < 6; i++)
if (b[i] == '0'){
iv[i].setImageResource(R.drawable.img2);
vacancy++;}
else if (b[i] == '1') {
iv[i].setImageResource(R.drawable.img1);
}
Log.i("abc ", a);
tv.setText("InBackGround" + str);
}
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
/* for(int i =0;i<6;i++) {
outState.putChar("imv"+(i+1), b[i]);
}*/
outState.putString("a",a); //Getting a from the internet (php file)
Log.i("Saved State", "Activity A - Saving instance state");
}
  1. 现在我想要的是如果你有更好的方法来做这件事。例如。在股票市场应用程序中,价格不断变化。就像我希望我的图像根据我获得的数据而改变一样。
  2. 如果这是唯一的方法,那么我如何保存所做的更改(例如,如上面的代码中的 setImageResource 到 img2)永久。
  3. 如果我可以使用其他 ImageView。

我已经使用了 onSaveInstanceState 但当我从互联网上获取值时,我不知道我无法使用它们。

最佳答案

因此,首先......在使用 View、Widget 等 UI 元素时,您会希望避免生成自己的线程,因为 View 只能从创建它的线程中进行触摸。

第二..您还希望避免在工作线程中 hibernate - 基本上只需使用 Handler 类(来自 android.os)并发布延迟的 Runnable,如下所示: https://stackoverflow.com/a/20784353/2102748 。当您的 Activity 停止时,请务必停止该特定处理程序上的所有工作,如下所示: https://stackoverflow.com/a/3627399/2102748

第三 - 如果这是您唯一需要的,您也许应该立即加载照片(在同一个 AsyncTask 或线程上),但请务必将“设置位图以查看”工作发布到您创建的处理程序。

希望这有帮助。

关于java - 如何更改图像并在 5 秒后重新运行线程中的主要 Activity 后不返回到 android 中的基本布局,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35995930/

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