理想情况下,我希望在应用程序暂停时调用,但为了使其正常工作,我从按钮调用方法。我在一个ArrayList中有一个ArrayList,它有一个如果列表和项设置为active,我希望发送到警报管理器的时间列表。如果有人能帮我弄明白为什么这是失败的,我会非常感激的。
public class ReminderList extends AppCompatActivity {
public static ArrayList<ReminderType> AllReminders=new ArrayList<>();
public reminderCAdapter adapter;
public static ReminderType currentReminderType;
public static ItemType currentItemType;
public static TimeType currentTimesType;
Context context;
AlarmManager alarmMan;
PendingIntent pIntent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.context=this;
setContentView(R.layout.activity_reminder_list);
//generate list
try {
LoadData();
} catch (IOException | ClassNotFoundException | JSONException e) {
e.printStackTrace();
}
alarmMan=(AlarmManager) getSystemService(ALARM_SERVICE);
adapter=new reminderCAdapter(AllReminders,this);
//handle listview and assign adapter
ListView lView = (ListView)findViewById(R.id.listView);
lView.setAdapter(adapter);
}
//Iterates through all reminders to see if reminder is enabled and if item is enabled and has a time
public void CheckAllActiveReminders(View view){
//Go through each reminder
Log.e("1", "1");
for(int i=0;i<AllReminders.size();i++){
//if the reminder is active continue
Log.e("2", "1");
if(AllReminders.get(i).ReminderActive){
//Go through each item
Log.e("3", "1");
for (int j=0;j<AllReminders.get(i).Items.size();j++){
//if the item is active
Log.e("4", "1");
if(AllReminders.get(i).Items.get(j).ItemActive){
//Go through each timetype
Log.e("5", "1");
for (int h=0;h<AllReminders.get(i).Items.get(j).Times.size();h++){
Log.e("6", "1");
Intent rIntent=new Intent(this.context, Alarm_Receiver.class);
Log.e("7", "1");
pIntent=PendingIntent.getBroadcast(ReminderList.this,0, rIntent,PendingIntent.FLAG_UPDATE_CURRENT);
Log.e("8", AllReminders.get(i).ReminderName+", "+AllReminders.get(i).Items.get(j).ItemName+", "+AllReminders.get(i).Items.get(j).Times.get(h).displayTime);
alarmMan.set(AlarmManager.RTC_WAKEUP,AllReminders.get(i).Items.get(j).Times.get(h).cal.getTimeInMillis(),pIntent);
}
}else{
//If item is deactivated all times in it need to be cancelled
Log.e("Fail 2", "1");
}
}
}else{
//if reminder is not active all items in it need to be deactivated
Log.e("Fail 1", "1");
}
}
}
}
由com.example.poods.remindmeandlogit.reminderlist.checkallactiveReminders(reminderlist.java:84)中的java.lang.NullPointerException引起
第84行是什么?你在那里访问一个空对象。查看什么是NullPointerException,以及如何修复它?
这是设置u和删除通知的代码。如果你需要更多的细节,请告诉我。堆栈溢出的唯一解决方案是关于相同的挂起意图。我已经尝试过这个解决方案,但没有成功。
对于某些活动的意图是有效的,对于某些特定的活动意图是崩溃的,我已经改变并尝试了不同的方法,但是对于某些活动意图是无效的,应用程序正在构建,但是在手机上运行之后,它在调试期间没有显示出任何错误?我尝试了不同的方法,但它仍然崩溃,谁能帮助我解决它? MainActivity java 清单文件
嗨,我目前正在使用警报管理器。我写了下面给出的代码。根据代码,警报管理器应该在10秒后触发,但在我的代码中,警报管理器会立即触发。请帮助。 还有我的警报接收课 我已经在清单中添加了所需的权限。
objectName.java 主要问题是我无法转到“ageinput.java”文件, activity_ageinput.xml activity_ageinput.xml edit_text.xml 崩溃报告
我有一个服务,它首先创建一个新的意图,并在其上调用。在此之后,我调用。然后调用(没有传递标志),并将挂起的意图传递给AlarmManager。 但在警报触发之前(甚至之后),我创建了另一个意图,并再次调用,但不设置任何附加内容。然后再次将其传递给。但是,这次我在PendingIntent上调用,以便立即接收intent。 我所观察到的是,最初的临时演员是以新的意图交付的。我似乎可以一遍又一遍地这样