android指定日期闹钟,设置一次某个日期和时间的闹钟Android

我想设置某个日期和时间的一次闹铃。而且我还通过使用闹钟管理器来设置。但是我的问题是当设备关闭并打开,然后警报不醒来。设置一次某个日期和时间的闹钟Android

我的代码::

public void setAlarm(String initialTime, String diffTime) throws ParseException {

Calendar cal = Calendar.getInstance(TimeZone.getDefault(), Locale.getDefault());

cal.set(Calendar.DATE,date);

cal.set(Calendar.MONTH,month-1);

cal.set(Calendar.YEAR,year);

cal.set(Calendar.HOUR_OF_DAY, hour);

cal.set(Calendar.MINUTE, minute);

cal.set(Calendar.SECOND, second);

AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);

Intent i = new Intent(ChatScreen.this, AlarmNotificationReceiver.class);

i.putExtra("CoId", coId);

i.putExtra("DeptId", deptNo);

i.putExtra("CoName", companyName);

i.putExtra("DpLogo", dpLogo);

i.putExtra("DeptName",deptName);

i.setAction("isFromAlram");

PendingIntent pi = PendingIntent.getBroadcast(ChatScreen.this,0, i, PendingIntent.FLAG_UPDATE_CURRENT);

alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(),pi);

}

我AlarmReceiverclass :::

public class AlarmNotificationReceiver extends BroadcastReceiver{

@Override

public void onReceive(Context context, Intent intent) {

String action = intent.getAction();

Log.e("AlarmReceiver",action);

if (action.equals(Intent.ACTION_BOOT_COMPLETED)) {

Toast.makeText(context, "ALARM_BOOT_COMPLETED", Toast.LENGTH_LONG).show();

} else if (action.equals("isFromAlram")) {

Logger.errorLog("From Service", "yes");

}

}

}

,也给在menifest文件的Android权限:NAME = “android.permission.RECEIVE_BOOT_COMPLETED”

接收器

android:name="com.chatapi.ChatApi.MyBroadcastReceiver"

android:enabled="true"

编辑这里接收

android:enabled="true"

android:process=":remote">

+0

为您的'' –

+0

发布整个清单条目将来,请勿在注释中张贴代码。只需编辑您的原始文章并将其添加到那里。评论中的代码难以阅读:-( –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个简单的实现具有闹铃功能的闹钟的代码和布局文件,闹钟可以自定义时间。 布局文件 alarm_clock.xml: ```xml <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <TextView android:id="@+id/time_text_view" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textSize="50sp" android:layout_centerInParent="true"/> <Button android:id="@+id/set_alarm_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="设置闹钟" android:layout_below="@id/time_text_view" android:layout_centerHorizontal="true"/> </RelativeLayout> ``` Java 代码 AlarmClockActivity.java: ```java import android.app.AlarmManager; import android.app.PendingIntent; import android.content.Context; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.TimePicker; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import java.util.Calendar; public class AlarmClockActivity extends AppCompatActivity { private TextView mTimeTextView; private TimePicker mTimePicker; private Button mSetAlarmButton; private int mHour; private int mMinute; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.alarm_clock); mTimeTextView = findViewById(R.id.time_text_view); mTimePicker = new TimePicker(this); mSetAlarmButton = findViewById(R.id.set_alarm_button); mSetAlarmButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mHour = mTimePicker.getHour(); mMinute = mTimePicker.getMinute(); Calendar calendar = Calendar.getInstance(); calendar.set(Calendar.HOUR_OF_DAY, mHour); calendar.set(Calendar.MINUTE, mMinute); calendar.set(Calendar.SECOND, 0); Intent intent = new Intent(AlarmClockActivity.this, AlarmReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadcast(AlarmClockActivity.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE); alarmManager.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent); Toast.makeText(AlarmClockActivity.this, "闹钟设置成功!", Toast.LENGTH_SHORT).show(); } }); } } ``` Java 代码 AlarmReceiver.java: ```java import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.media.MediaPlayer; import android.widget.Toast; public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "闹钟响了!", Toast.LENGTH_LONG).show(); MediaPlayer mediaPlayer = MediaPlayer.create(context, R.raw.alarm_sound); mediaPlayer.start(); } } ``` 以上代码实现了一个简单的具有闹铃功能的闹钟,可以自定义时间。当设置时间到达时,会弹出一个 Toast 提示用户,同时播放一个音乐文件。当然,还有很多细节需要完善,比如设置闹钟时间不能早于当前时间等等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值