2017-12-22 5 views
-1

알람 관리자에는 두 가지 문제가 있습니다. 하나는 10 초마다 알람을 반복하고 다른 하나는 내 브로드 캐스트 리시버가 10 초 후에 호출하는 것입니다.알람 관리자가 브로드 캐스트 수신자를 호출하지 않습니다.

브로드 캐스트 수신기 대신 활동을 사용할 때 작동하지만 브로드 캐스트 수신기가 작동하지 않습니다. 그리고 1 분 안에 작동하는 시간이 적절하지 않고 50 초 작동하는 경우도 있습니다. 하지만 10 초마다 필요합니다.

내 코드는 다음과 같습니다

buttonStart.setOnClickListener(new Button.OnClickListener(){ 

@Override 

     public void onClick(View arg0) { 

      // TODO Auto-generated method stub 

      long tenMin = 1000/5 ;//here is 30 seconds 
      Intent intent = new Intent(MainActivity.this, MyBroadcastReceiver.class); 
      PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 
        0, intent, 0); 
      AlarmManager am = 
        (AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
      am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), tenMin, pendingIntent); 

     }}); 

BoradcastReceiver.java

public class MyBroadcastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     Toast.makeText(context, "Alarm....", Toast.LENGTH_LONG).show(); 
    } 
} 


Manifest file: 

<application 
     android:allowBackup="true" 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:roundIcon="@mipmap/ic_launcher_round" 
     android:supportsRtl="true" 
     android:theme="@style/AppTheme"> 
     <activity android:name=".MainActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <service android:name=".MyAlarmService" /> 

     <receiver 
      android:name=".MyBroadcastReceiver" 
      android:process=":remote"></receiver> 

     <activity android:name=".SecondActivity"></activity> 
    </application> 

</manifest> 

답변

2

사용 :

활동 :

PendingIntent pendingIntent = PendingIntent.getBroadcast(MainActivity.this,0, intent, 0); 

R 10 초 임신 간격,

repeatingInterval = 10 *1000; //interval in milli seconds for 10sec 

    AlarmManager alarmManager =(AlarmManager)getSystemService(Activity.ALARM_SERVICE); 
    alarmManager .setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), repeatingInterval , pendingIntent); 

그래야합니다.

+0

감사합니다. 지금은 잘 작동합니다. 정말 고맙습니다. –

+0

듣기 좋음 :) – Black

관련 문제