[英]initializing pending intent crashes activity (the program stops)
我正在創建一個鬧鍾。 我遵循了幾個例子,但沒有一個有幫助。 當我刪除 pendingIntent 行活動正常工作。
package com.example.push_upalarmemptygit;
import androidx.appcompat.app.AppCompatActivity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.TimePickerDialog;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import java.util.Calendar;
public class SetAlarmActivity extends AppCompatActivity {
Context context;
private PendingIntent pendingIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_set_alarm);
context = getApplicationContext();
Intent alarmIntent = new Intent(context, MyBroadcastReceiver.class);
pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, 0); //this is incorrect?
findViewById(R.id.setExact).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
setExact();
}
});
}
public void setExact() {
AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 30);
manager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), pendingIntent);
Toast.makeText(this, "Alarm Set", Toast.LENGTH_SHORT).show();
}
}
我正在遵循以下指南: https:https://javatechig.com/android/repeat-alarm-example-in-android-using-alarmmanager/ https://developer.android.com/training/scheduling/alarms.html
添加不可變標志解決了這個問題。
pendingIntent = PendingIntent.getBroadcast(context, 0, alarmIntent, pendingIntent.FLAG_IMMUTABLE);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.