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
버튼을 클릭하면 알림이 취소되지 않습니다. 그것을 고치는 방법?
을했다? –
https://stackoverflow.com/questions/33886277/notification-is-not-cancelled-after-calling-notification-cancel –
@AlexChengalan : 스위치 명령문을 사용하여 클릭 동작을 특정 버튼으로 리디렉션합니다. –