0

I am working in an app which uses Fragment in which there is a reminder with time picker but my ReminderPage class do not go to BroadcastReceiver class,I cannot find out why this is happening.

Here is my code for RemiderPage.java.

public class ReminderPage extends android.support.v4.app.Fragment {
View view;
Button Setalarm;
TimePicker timePicker;
final static int RQS_1=1;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {
    view= inflater.inflate(R.layout.fragment_reminder, container, false);
    timePicker=(TimePicker)view.findViewById(R.id.timePicker);
    Setalarm=(Button)view.findViewById(R.id.button8);
    Calendar calendar=Calendar.getInstance();
    timePicker.setCurrentHour(calendar.get(Calendar.HOUR_OF_DAY));
    timePicker.setCurrentMinute(calendar.get(Calendar.MINUTE));
    Setalarm.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Calendar cal = Calendar.getInstance();
            cal.set(timePicker.getCurrentHour(), timePicker.getCurrentMinute(), 00);

            setAlarm(cal);
        }


        private void setAlarm(Calendar targetcal) {
            Toast.makeText(getContext(), "Alarm is set", Toast.LENGTH_LONG).show();
            Intent intent = new Intent(getContext().getApplicationContext(),AlarmReceiver.class);
            PendingIntent pendingIntent = PendingIntent.getBroadcast(getContext().getApplicationContext(), RQS_1, intent, 0);
            AlarmManager alarmmanager = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
            alarmmanager.set(AlarmManager.RTC_WAKEUP, targetcal.getTimeInMillis(), pendingIntent);

        }
    });


    return view;
}

}

And here is my code for AlarmReceiver.java.

public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(context,"Alarm received",Toast.LENGTH_LONG).show();
}
}
A.Pant
  • 27
  • 1
  • 9

1 Answers1

0

Please register your receiver inside application node of manifest.xml file.

<receiver android:name=".AlarmReceiver" android:enabled="true">   
</receiver>

Please check below link, for further information. http://developer.android.com/guide/topics/manifest/receiver-element.html

You can register programmatically also. please check the below ink.

Programmatically register a broadcast receiver

Community
  • 1
  • 1
Shalu T D
  • 3,921
  • 2
  • 26
  • 37