Java android通知在启动时出现
我正在尝试创建一个应用程序,其中我计划了一个通知 但每当我尝试打开应用程序时,就会出现通知。。。。。 它在正确的时间出现,但也在应用程序打开时出现。 这是代码 Main activity.javaJava android通知在启动时出现,java,android,Java,Android,我正在尝试创建一个应用程序,其中我计划了一个通知 但每当我尝试打开应用程序时,就会出现通知。。。。。 它在正确的时间出现,但也在应用程序打开时出现。 这是代码 Main activity.java public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s
public class MainActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Calendar Calendar_Object = Calendar.getInstance();
Calendar_Object.set(Calendar.HOUR_OF_DAY,16);
Calendar_Object.set(Calendar.MINUTE,18);
Calendar_Object.set(Calendar.SECOND,00);
Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,
0, myIntent,0);
AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, Calendar_Object.getTimeInMillis(),120000,pendingIntent);
}
}
AlarmReceiver.java
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Intent myIntent = new Intent(context, NotificationService.class);
context.startService(myIntent);
}
}
NotificationService.java
public class NotificationService extends Service {
private NotificationManager mManager;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
super.onCreate();
}
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
mManager = (NotificationManager) this.getApplicationContext()
.getSystemService(
this.getApplicationContext().NOTIFICATION_SERVICE);
Intent intent1 = new Intent(this.getApplicationContext(), MainActivity.class);
@SuppressWarnings("deprecation")
Notification notification = new Notification(R.drawable.images,
"xys", System.currentTimeMillis());
intent1.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP
| Intent.FLAG_ACTIVITY_CLEAR_TOP);
notification.defaults |= Notification.DEFAULT_SOUND;
notification.defaults |= Notification.DEFAULT_VIBRATE;
PendingIntent pendingNotificationIntent = PendingIntent.getActivity(
this.getApplicationContext(), 0, intent1,
PendingIntent.FLAG_ONE_SHOT);
notification.flags |= Notification.FLAG_AUTO_CANCEL;
notification.setLatestEventInfo(this.getApplicationContext(),
"xyz", "abcd",
pendingNotificationIntent);
notification.flags|= Notification.FLAG_AUTO_CANCEL;
mManager.notify(0, notification);
stopSelf();
}
报警再次触发,因为在发出通知后,您正在调用正在重新设置报警的MainActivity。尝试在不同的活动中设置报警。否则,如果活动在通知后启动,则禁止设置报警。您可以使用两种方法进行设置。1设置不同活动的报警2设置报警前,确保当前小时不等于16。使用以下代码编辑您的主要活动。。ifCalendar\u Object.getCalendar.HOUR\u OF\u DAY=16 alarmManager.setRepeatingAlarmManager.RTC_唤醒,日历_对象。getTimeInMillis,120000,PendingContent;