gpt4 book ai didi

java - 传递在两个 Activity 之间不断更新的数据

转载 作者:搜寻专家 更新时间:2023-11-01 09:40:56 27 4
gpt4 key购买 nike

我有两个 Activity ,我的 MainActivity 运行 TimerTask,它增加“计数器”值。

public class MainActivity extends AppCompatActivity {

public static int counter = 0;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

final Handler handler = new Handler();

Timer timer = new Timer();
TimerTask timerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run() {
counter++;
}
});
}
};

timer.schedule(timerTask, 0, 1000);

Intent intent = new Intent(this, MapActivity.class);
startActivity(intent);
}
}

我的 MapActivity 应该在单击按钮时读取此值。

public class MapActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_map);
}

public void readCounter(View view){
Log.d("counter:", Integer.toString(MainActivity.counter));
}
}

目前 counter 被声明为公共(public)静态变量,但由于静态变量是不好的做法,正确和优雅的方法是什么?

最佳答案

静态值没有错。如果你想让它成为 MVC 并使用模型,你可能应该用单例模型类包装这个值。

但为了简化事情,我只建议确保您在 MainActivity onCreate 上重置值。

Android 的方法是使用服务或 startActivityForResult .

关于java - 传递在两个 Activity 之间不断更新的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39881795/

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