在非活动类中显示对话框 1x/天
Posted
技术标签:
【中文标题】在非活动类中显示对话框 1x/天【英文标题】:Show Dialog in non-activity class 1x/day 【发布时间】:2021-08-19 23:46:06 【问题描述】:我希望每天在特定时间在我的 android 应用上显示一次警报对话框。我创建了一个运行检查操作系统时间的线程的类,一旦时间匹配,我想在用户正在进行的任何活动中显示一个警报对话框。我试图传递当前上下文和当前活动,但由于对话框没有出现,所以两者都不起作用。有谁知道如何解决这个问题?这是我的非活动类中的两个函数。
void start_time_thread()
Thread thread = new Thread(() ->
Looper.prepare();
while (true)
int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); //Current hour
if (currentHour > hour || currentHour < hour)
Log.d(TAG, "Current Hour: " + currentHour + " reminder hour: " + hour);
else
int currentMin = Calendar.getInstance().get(Calendar.MINUTE); //Current min
if ((min - 1) == currentMin)
showWarningAlert(CURRENT_CONTEXT);
break;
try
Thread.sleep(5000);
catch (InterruptedException e)
e.printStackTrace();
);
thread.start();
private void showWarningAlert(Activity activity) //Added current activity
AlertDialog alertDialog = new AlertDialog.Builder(activity).create(); //Use activity
alertDialog.setTitle("Reminder");
alertDialog.setMessage("Reminder msg");
alertDialog.setButton(AlertDialog.BUTTON_NEUTRAL, "OK",
new DialogInterface.OnClickListener()
@Override
public void onClick(DialogInterface dialog, int which)
dialog.dismiss();
);
alertDialog.show();
【问题讨论】:
【参考方案1】:您需要使用:
1- 工作经理 2- 报警管理器
实现在特定时间向用户显示对话框,因为android系统为了电池优化而杀死了后台服务
【讨论】:
以上是关于在非活动类中显示对话框 1x/天的主要内容,如果未能解决你的问题,请参考以下文章