【发布时间】: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();
}
【问题讨论】:
标签: android android-activity dialog android-context