у меня есть:Android - BroadcastReceiver не получает заказ намерения
MyApp расширяет приложение с OnCreate:
sendBroadcast(refreshAlarm);
Log.d(TAG, "broadcast sent with intent " + refreshAlarm);
Log.d(TAG, "onCreate");
где
static final Intent refreshAlarm = new Intent(ACTION_REFRESH_RECEIVER);
public static final String ACTION_REFRESH_RECEIVER = "com.example.myapp.REFRESH_RECEIVER";
BroadcastReceiver:
package com.example.myapp;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.preference.PreferenceManager;
import android.util.Log;
public class RefreshReceiver extends BroadcastReceiver
{
private static final String TAG = "RefreshReceiver";
@Override
public void onReceive(Context context, Intent intent)
{
Log.d(TAG, "broadcast received with intent " + intent);
long interval = Long
.parseLong(PreferenceManager.getDefaultSharedPreferences(
context).getString("delay", "900")) * 1000;
PendingIntent operation = PendingIntent.getService(context, -1,
new Intent(context, RefreshService.class),
PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager alarmManager = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
alarmManager.cancel(operation);
if (interval > 0)
{
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP,
System.currentTimeMillis(), interval, operation);
}
Log.d(TAG, "onReceive: delay = " + interval);
}
}
заявил в проявлении es:
<receiver android:name="com.example.myapp.RefreshReceiver" >
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED" />
<action android:name="com.example.myapp.REFRESH_RECEIVER" />
</intent-filter>
</receiver>
Мне кажется, что у меня есть все, что мне нужно для выполнения этой работы. Широковещательная передача отправляется в onCreate (я вижу, что в журнале действительно отправляется). Широковещательная передача объявляется с фильтром намерения, чтобы получить намерение refreshAlarm
, но оно не получает его, и я не могу понять, почему. Нужно ли мне что-нибудь еще?
Где я должен это делать? – kostek
у вас код и метод registerbroadcast call from you oncrate activity и unregisterbrodcast в вашем методе уничтожения ... не регистрируйте его в вашем файле манифеста, а не файл манифеста, зарегистрируйте его внутри класса ... пожалуйста, обратитесь к документам .. –
Я как могу получить 'broadCastReceiver'? – kostek