gpt4 book ai didi

java - 经过一定时间后显示 Toast 消息并执行操作

转载 作者:太空宇宙 更新时间:2023-11-04 12:38:27 24 4
gpt4 key购买 nike

我有一个应用程序,它可以读取数字文件。预先定义一个阈值,并将文件中的每个数字与阈值一一进行比较。当读取的数量大于阈值时,通过按钮显示警报。如果 2 分钟内未按下按钮,请发送短信。如果按钮再过两分钟仍未按下,则调用电话。

我遇到的问题是计算耗时,并在经过一定时间后触发前面提到的两种方法之一。如何定义以及在哪里定义。我见过很多使用处理程序、计时器和 Runnable 方法的示例,但尝试过但没有成功。当我运行该应用程序时,什么也没有发生。

这是到目前为止我的代码,将不胜感激任何建议或想法。

使用处理程序

private static final int MISS_LIMIT = 1000;
int misses = 0;

final Handler handler = new Handler();
final Runnable timer = new Runnable() {
@Override
public void run()
{
handler.postDelayed(timer, MISS_LIMIT);
// user too late: increment miss counter
if (++misses >= MISS_LIMIT)
{
//TODO miss limit reached
Toast.makeText(MainActivity.this, "Time is passed", Toast.LENGTH_SHORT).show();
finish(); // close this activity
}
}
};

其余代码:

 int Threshold = 40;

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

File dir = Environment.getExternalStorageDirectory();


File file = new File(dir, "/Numbers.txt");

try
{
FileInputStream fin = new FileInputStream(file);

if (fin != null)
{

BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(fin));
String line ="";

while((line= bufferedReader.readLine()) != null)
{

if (Integer.parseInt(line) > Threshold)
{
//store value in integer
int number = Integer.parseInt(line);

// create alert dialog
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
builder
.setTitle("Alert !!")
.setMessage("High Temperature !!" + "\t" + number)


.setPositiveButton("Send SMS",new DialogInterface.OnClickListener()
{
public void onClick(DialogInterface dialog,int id)
{
// if this button is clicked, close current activity
MainActivity.this.finish();
}
});


AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setBackgroundDrawableResource(android.R.color.holo_red_light);
alertDialog.show();
}

}

fin.close();

最佳答案

也许您可以进行以下更改以使其正常工作。

假设您正在从 initiateDialog 方法调用对话框

    void initiateDialog(){
//Show Alert
//Your existing code for Dialog
AlertDialog alertDialog = builder.create();
alertDialog.getWindow().setBackgroundDrawableResource(android.R.color.holo_red_light);
alertDialog.show();
new Handler().postDelayed(new Runnable() {

@Override
public void run() {
buttonNotPressedFirst();
}
}, FIRST_DELAY);

}
void buttonNotPressedFirst(){
//SEND SMS
new Handler().postDelayed(new Runnable() {

@Override
public void run() {
buttonNotPressedSecond();
}
}, SECOND_DELAY);
}
}

void buttonNotPressedSecond(){
//Proceed with phone call
}

关于java - 经过一定时间后显示 Toast 消息并执行操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37075064/

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