gpt4 book ai didi

java - 有没有办法在某个时间只执行一次 void ?

转载 作者:行者123 更新时间:2023-12-01 17:34:50 25 4
gpt4 key购买 nike

我有一个带有 recyclerview 的 Activity ,我希望该 recyclerview 每次都显示不同的 listItems。这是可行的,但我希望它只运行一次(在某个时间,例如 00:00h),而不是每次我进入 Activity 时都再次运行,所有的空白都随机决定在回收器 View 上显示哪个项目。

代码如下:

public class Comida2 extends AppCompatActivity implements Adaptador2.OnRecipeListener {
private RecyclerView recyclerView1;
List<Entidad2> listItems;
Adaptador2 adaptor;
private Entidad2 entidad1,entidad2,entidad3;
Button cambiarmenu;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);
setContentView(R.layout.activity_comida);

cambiarmenu = (Button) findViewById(R.id.boton_cambiarmenu);

recyclerView1 = findViewById(R.id.lv_1);
LinearLayoutManager layoutManager = new LinearLayoutManager(this);
layoutManager.setOrientation(LinearLayoutManager.VERTICAL);

recyclerView1.setLayoutManager(layoutManager);

listItems = new ArrayList<>();
entidad1 = new Entidad2(R.drawable.calabacines_3, "Solomillo a la plancha", " 10 min.", 4, 20);
entidad2 = new Entidad2(R.drawable.patatas_deluxe_especiadas_70523_300_150, "Entrecot", " 15 min.", 2, 50);
entidad3 = new Entidad2(R.drawable.tomate, "Hamburguesa", " 2 min.", 5, 100);


listItems.add(entidad1);
listItems.add(entidad2);
listItems.add(entidad3);

adaptor = new Adaptador2(listItems, this);
recyclerView1.setAdapter(adaptor);
adaptor.notifyDataSetChanged();
}


@Override
public void OnRecipe(int priority) {

if (priority == 20) {
Intent in = new Intent(this, Solomillo.class);
startActivity(in);
}
if (priority == 50) {
Intent in = new Intent(this, Entrecot.class);
startActivity(in);
}
if (priority == 100) {
Intent in = new Intent(this, Hamburguesa.class);
startActivity(in);
}
}

public void pickEntidad(){
final int random = new Random().nextInt(101);

int priority1 = entidad1.getPriority();
int priority2 = entidad2.getPriority();
int priority3 = entidad3.getPriority();


listItems.clear();
if(random < priority1){

listItems.add(entidad1);

}else if(random < priority2){

listItems.add(entidad2);

}else if (random <= priority3){

listItems.add(entidad3);

}
adaptor.notifyDataSetChanged();
}
}

我看过其他一些帖子,但问题是我希望所有进程在我第一次进入应用程序时运行一次,然后关闭应用程序。之后,进入app,仍然没有运行void。但它应该在某个时间运行,例如 00:00h 就可以了。

此外,我想在不同 Activity 上添加一个按钮,该按钮可以在 Activity 中运行void,从而更改回收器 View 上随机显示的内容.

最佳答案

使用 WorkManager 并安排作业在每晚 0:00 运行。让它选择要显示的项目并将其写入文件。然后,当您的 Activity 运行时,让它读取该文件并显示这些项目。

对于 Activity 中的按钮,让它删除文件。如果没有文件可以开始,则对 RecyclerView Activity 进行编码以生成文件本身(如果需要,在开始时显示加载屏幕)。

关于java - 有没有办法在某个时间只执行一次 void ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61059598/

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