Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java android通知在启动时出现_Java_Android - Fatal编程技术网

Java android通知在启动时出现

Java android通知在启动时出现,java,android,Java,Android,我正在尝试创建一个应用程序,其中我计划了一个通知 但每当我尝试打开应用程序时,就会出现通知。。。。。 它在正确的时间出现,但也在应用程序打开时出现。 这是代码 Main activity.java public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); s

我正在尝试创建一个应用程序,其中我计划了一个通知 但每当我尝试打开应用程序时,就会出现通知。。。。。 它在正确的时间出现,但也在应用程序打开时出现。 这是代码

Main activity.java

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;