2016-12-18 1 views
0

나는 약 WakefulBroadcastReceiver에 대해 많이 읽었지만 주요 활동에서 이것을 호출하는 방법에 대해서는 아무 것도 이해하지 못했습니다. 내가 WakefulBroadcastReceiver 호출하는 방법을 검색 할 때마다 결과는 항상 저를 우리가 어떻게 활동 "startService()"코드를 작성하거나 WakefulBroadcastReceiver에 ... 우리가 쓰기 BroadcastReceiver 전화를 IntentService 전화를 WakefulBroadcastReceiver에서 IntentService ...WakefulBroadcastReceiver를 호출하는 방법

음을 호출하는 방법을 보여줍니다

AlarmManager am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 
     PendingIntent.getBroadcast(this, 0, intent,PendingIntent.FLAG_UPDATE_CURRENT)); 

하지만 WakefulBroadcastReceiver ... 이 도와주세요 호출하는 방법을 어디서든 찾을 수 없습니다 ..

+0

당신이 코드가 WakefulBroadcastReceiver 전화를 받고되지 않습니다이 http://stackoverflow.com/questions/19051088/wakefulbroadcastreceiver-cannot-be-resolved-to-a-type – rafsanahmad007

+0

이유를 참조 너야 직접 전화하지 마세요. 모든 BroadcastReceiver는 Android 프레임 워크에 의해 호출되며 사용자가 아닌 것입니다. 또한 MainActivity를 제어 할 수있는 경우 왜 BroadcastReceiver를 사용하려고합니까? WakefulBroadcastReceiver의 onReceive 메소드 안에 넣으려는 행을 실행하면됩니다. –

답변

0

android.support.v4.content.WakefulBroadcastReceiver는 도움이됩니다 장치 깨우기 이벤트를 수신하는 클래스입니다.

서비스를 호출하거나 작업을 수행 할 수있는 onReceive() 메소드를 오버라이드해야합니다.

WakefulBroadcastReceiver는 절전 모드 잠금을 사용하므로 AndroidManifest.xml에 WAKE_LOCK 권한을 제공해야합니다. WakefulBroadcastReceiver는 menifest가

<uses-permission android:name="android.permission.WAKE_LOCK"></uses-permission> 

전화 AlarmReceiver과 같이 추가로

public class AlarmReceiver extends WakefulBroadcastReceiver { 
    @Override 
    public void onReceive(final Context context, Intent intent) { 
     MainActivity.getTextView2().setText("Enough Rest. Do Work Now!"); 
     Uri uri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM); 
     Ringtone ringtone = RingtoneManager.getRingtone(context, uri); 
     ringtone.play(); 
    } 
} 

로 구현됩니다 : 전체 작업을 위해

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

:

Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class); 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this, 0, myIntent, 0); 

도 매니페스트에 수신기 태그를 추가 에스 충분한 링크 참조 : http://www.concretepage.com/android/android-alarm-clock-tutorial-to-schedule-and-cancel-alarmmanager-pendingintent-and-wakefulbroadcastreceiver-example

+0

alarmReceiver .. 호출하는 방법 ??? – wangz

+0

@wangz 내 편집 된 답변을 참조하십시오 .. 또한 WakefulbroadcastReceiver의 전체 구현에 대한 예제를 따르십시오 .. 자세한 설명이 있습니다 – rafsanahmad007

+0

감사합니다. @ rafsanahmad007 – wangz