2017-12-15 3 views
0

2 개의 버튼에 대한 간단한 선형 레이아웃을 작성했습니다.알림 취소가 작동하지 않습니다.

package com.dell.kronos; 

import android.app.NotificationManager; 
import android.app.PendingIntent; 
import android.content.BroadcastReceiver; 
import android.content.Context; 
import android.content.Intent; 
import android.media.RingtoneManager; 
import android.net.Uri; 
import android.support.v4.app.NotificationCompat; 

import com.dell.kronos.activities.MainActivity; 


public class NotificationReciever extends BroadcastReceiver { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     NotificationManager notificationManager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE); 
     Intent intent1 = new Intent(context,LaunchActivity.class); 
     intent1.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     //if we want ring on notifcation then uncomment below line// 
     Uri alarmSound = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION); 
     PendingIntent pendingIntent = PendingIntent.getActivity(context,100,intent1,PendingIntent.FLAG_UPDATE_CURRENT); 
     NotificationCompat.Builder builder = new NotificationCompat.Builder(context). 
       setSmallIcon(R.drawable.kronos_logo). 
       setContentIntent(pendingIntent). 
       setContentText("Time to fill TimeSheet"). 
       setContentTitle("Hurry!!!"). 
       setSound(alarmSound). 
     setAutoCancel(true); 
     notificationManager.notify(100,builder.build()); 

    } 
} 

것은 내가 클릭

여기
@Override 
    public void onClick(View view) { 
     //CustomAlertDialog.showProgressDialog(getActivity(),"Requesting..."); 
     Intent intent; 
     switch (view.getId()){ 
      case R.id.submitDailyTime: 
      /*  onBackPressed = true; 
       userAccessTask = new KronosAsyncTask(getActivity(), utility.PunchIn(weekDay,calendar.getTime().toString(),"Out Punch"),this,AppConstants.urls.KRONOS_PUNCH,"json"); 
       userAccessTask.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR);*/ 
       Calendar calendar = Calendar.getInstance(); 
       calendar.set(Calendar.HOUR_OF_DAY,14); 
       calendar.set(Calendar.MINUTE,18); 
       intent = new Intent(getActivity(),NotificationReciever.class); 
       PendingIntent pendingIntent = PendingIntent.getBroadcast(getActivity(),0,intent, PendingIntent.FLAG_UPDATE_CURRENT); 
       AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(ALARM_SERVICE); 
       alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),alarmManager.INTERVAL_DAY,pendingIntent); 
       break; 

      case R.id.cancelNot: 
       String ns = getActivity().NOTIFICATION_SERVICE; 
       NotificationManager notificationManager = (NotificationManager) getActivity().getSystemService(ns); 
       notificationManager.cancel(100); 
       break; 
     } 
    } 

notification receiver 코드입니다 : 하나 개 수 있도록 알림 버튼과 취소 통지에 대한 또 다른 버튼을 다음과 같이

<LinearLayout 
     android:layout_width="80dp" 
     android:layout_height="40dp" 
     android:gravity="center" 
     android:visibility="visible" 
     android:layout_marginTop="20dp" 
     android:layout_marginBottom="20dp" 

     android:background="@color/black_60_opacity" 
     android:layout_gravity="center"> 
     <TextView 
     android:layout_gravity="center" 
     android:gravity="center" 
     android:id="@+id/submitDailyTime" 
     android:textColor="@color/white" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Submit"/> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="80dp" 
     android:layout_height="40dp" 
     android:gravity="center" 
     android:visibility="visible" 
     android:layout_marginTop="20dp" 
     android:layout_marginBottom="20dp" 

     android:background="@color/black_60_opacity" 
     android:layout_gravity="center"> 
     <TextView 
      android:layout_gravity="center" 
      android:gravity="center" 
      android:id="@+id/cancelNot" 
      android:textColor="@color/white" 
      android:layout_width="match_parent" 
      android:layout_height="match_parent" 
      android:text="Cancel"/> 
    </LinearLayout> 

는 그럼 난 내 Notification code을 썼다 Submit 버튼을 누르면 알림이 성공적으로 전송됩니다. 그러나 Cancel 버튼을 클릭하면 알림이 취소되지 않습니다. 그것을 고치는 방법?

+0

을했다? –

+0

https://stackoverflow.com/questions/33886277/notification-is-not-cancelled-after-calling-notification-cancel –

+0

@AlexChengalan : 스위치 명령문을 사용하여 클릭 동작을 특정 버튼으로 리디렉션합니다. –

답변

0

cancelNot을 신고하고 click listenercancelNot에 추가하는 것을 잊었습니다. 이렇게 추가되었습니다.

private TextView cancel; 
cancel = (TextView) view.findViewById(R.id.cancelNot); 
cancel.setOnClickListener(this); 

그리고 u는 cancelNot에 클릭 리스너를 지정하는 것을 잊지 않았다

+0

그 무엇을 언급했는지 코멘트에 :) –

+1

예, 혼란 스러웠습니다. 모든 프로그래머는 자신이 작성한 코드에 대해 혼란스러워합니다. D –

관련 문제