환경의 변화에 반응하지 않고 경보 내가 다른 선호내 애플 i는 사용자가 알람 시간을 선택할 수 있도록하기 위해 노력하고있어
이를 선택하는 경우에도 "기본값 인"15 분마다 트리거 유지 코드 알람
cancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
am.cancel(pend);
pend.cancel();
Toast.makeText(MainActivity.this,"All cleared", Toast.LENGTH_LONG).show();
}
});
내가에서 onCreate 방법과 두 번째 TI에서 펜던 및 알람을 만드는거야을 취소 할 내 MainActivity
public class MainActivity extends AppCompatActivity {
private SharedPreferences sharedPreferences;
private static String reminder;
private static AlarmManager am;
private ImageButton btn;
private ImageButton cancel;
private EditText et;
private Intent intent;
private PendingIntent pend;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// initialize variables
btn = (ImageButton) findViewById(R.id.imageButton2);
cancel = (ImageButton) findViewById(R.id.imageButton);
SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this);
// create intents
intent = new Intent(getApplicationContext(), Notifications.class);
pend = getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
am = (AlarmManager) getSystemService(ALARM_SERVICE);
// get the user preference
String sel = sp.getString("repeatPref", "1");
final String repeat[] = getResources().getStringArray(R.array.settings_repeat_by_labels);
final int ss = Integer.parseInt(sel);
// action when user presses the "Tweak" button
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pend.cancel();
am.cancel(pend);
// initialize pend and AlarmManager
pend = getBroadcast(getApplicationContext(), 100, intent, PendingIntent.FLAG_UPDATE_CURRENT);
am = (AlarmManager) getSystemService(ALARM_SERVICE);
// if the user didn't type anything
Calendar calendar = Calendar.getInstance();
// notify at different times
if (repeat[ss - 1].equals("15 MINUTES")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + 60*1000 ,60*1000, pend);
}
} else if (repeat[ss - 1].equals("1 HOUR")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + 120 * 1000, 120 * 1000, pend);
}
} else if (repeat[ss - 1].equals("2 HOURS")) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
am.setInexactRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + AlarmManager.INTERVAL_HOUR * 2, AlarmManager.INTERVAL_HOUR * 2, pend);
}
});
을 다른 버튼에 관련된 문제입니다 나 "btn"을 눌렀을 때 나는 그것을 취소 할 다른 버튼을 만들려고하고 PendingIntent "pend"와 AlarmManager "am"이 이미 존재하는지 또는 아니오인지 그리고 "canceling"결과에 따라 "오랜 시간 동안" 이 방법이 효과가 있다고 생각 했으므로 실패했습니다.
이제는 사용자가 알람을 취소하고 앱을 열 때마다 새로운 보류 의도 및 알람 관리자가 만들어 지므로 사용자가 먼저 "btn"을 누르지 않고 취소 버튼을 누르면 응용 프로그램이 충돌하지 않고 이미 작동하고 있던 경보가 취소됩니다. 나는 이것이 지금 내가 겪고있는 문제의 일부라고 생각합니다.
나는 그것이 많은 것을 알고 있지만 최대한 간단하게 설명하려고 노력했습니다. 그 모든 것을 읽을 시간을내어 주셔서 감사합니다!