【问题标题】:How to play alarm on specified time in android?如何在android中的指定时间播放闹钟?
【发布时间】:2015-11-29 14:59:20
【问题描述】:

我是 android 开发的初学者。

我正在开发一个应用程序,该应用程序需要在单击按钮后的 8 小时内准确播放警报。

我创建了一条获取当前时间的线路,但我坚持从当前时间计算 8 小时并播放警报音。

这是我的代码:

import android.os.Bundle;
import android.app.Activity;
import android.widget.ToggleButton; 
import java.text.SimpleDateFormat;
import java.util.Calendar;
import android.widget.Toast;
import android.view.View.OnClickListener;
import android.view.*;

public class MainActivity extends Activity {

    public ToggleButton tgb1;

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


        tgb1 = (ToggleButton) findViewById(R.id.toggleButton1);

        tgb1.setOnClickListener(new OnClickListener(){
            @Override
            public void onClick(View arg0) {


        if (tgb1.getText().toString().equals("Click to Turn Off"))
        {

            Calendar c = Calendar.getInstance();
            SimpleDateFormat sdf = new SimpleDateFormat("hh:mm");
            String strDate = sdf.format(c.getTime());
            c.add(Calendar.HOUR,8);

但我不知道从这里继续前进。请帮我计算从当前时间开始的 8 小时并播放警报音。

等待您的友好回复。

谢谢。

【问题讨论】:

    标签: android timer alarmmanager alarm


    【解决方案1】:

    您必须在以后使用 AlarmManager 来运行您的代码。根据 Android 文档

    警报管理器适用于您希望应用程序代码在特定时间运行的情况,即使您的应用程序当前没有运行。

    因为你已经有了 Calendar 对象 c

    AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
    
    am.set(AlarmManager.RTC_WAKEUP, c.getTimeInMillis(), pendingIntent);
    

    pendingIntent 可以调用一个服务类来播放音频。

    【讨论】:

      【解决方案2】:

      您可以使用AlarmManager

      this 也可以帮助您。在格式化和分配值给 String 之前,总是在 Calendar 实例中添加 (c.Add) 分钟/小时/天,因为现在您的“strDate”等于实际时间,而没有后面添加 8 小时。

      【讨论】:

      • 您不能使用仅链接答案吗?我知道这些是 android 文档和 SO 问题,但是如果文档的位置移动了怎么办?如果问题以某种方式被删除怎么办?这个答案将失效。添加一些解释可以帮助解决问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多