当我在应用上时,如何删除我自己的应用通知

时间:2016-09-14 13:08:18

标签: android notifications

我使用按钮创建一个应用程序,持续5秒通知我在应用程序或外部时收到通知 所以我想在我没有使用该应用程序时收到通知 当我点击通知进入应用程序并且通知停止但是当我重新关闭应用程序时,通知每5分钟/秒出现一次。

mainactivity.java

 Button button;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
        button = (Button)findViewById(R.id.btn1);
    button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Calendar calendar =Calendar.getInstance();



            Intent intent = new Intent (getApplicationContext(),AlertReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(getApplicationContext(),100,intent,PendingIntent.FLAG_UPDATE_CURRENT);

            AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE);
            alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),AlarmManager.INTERVAL_FIFTEEN_MINUTES/180,pendingIntent);


        }
    });

}

AlertReciver.class

public class AlertReceiver extends BroadcastReceiver {



@Override
public void onReceive(Context context, Intent intent) {
     NotificationManager notificationManager = (NotificationManager)context.getSystemService(Context.NOTIFICATION_SERVICE);
    Intent repeating_intent = new Intent(context,Activity12.class);
    repeating_intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

    PendingIntent pendingIntent = PendingIntent.getActivity(context,100,repeating_intent,PendingIntent.FLAG_UPDATE_CURRENT);
  NotificationCompat.Builder builder = new NotificationCompat.Builder(context).setContentIntent(pendingIntent)
            .setSmallIcon(R.drawable.ic_launcher)
            .setContentTitle("AAA")
            .setContentText("BBB")
          .setAutoCancel(true);

        notificationManager.notify(100,builder.build());

Activity12.class是空的,只有textview那里......!

1 个答案:

答案 0 :(得分:0)

一种可能性是仅在应用未运行时显示通知。因此,您可以为应用程序提供一个静态变量,在构建通知之前进行检查,在onResume()中设置为true或在onPause()中设置为false。

可能有一种更好的方法可以检查应用程序当前是否正在运行,但我还没有在android java中编码一段时间,而我现在还没有安装Android工作室来试用它。