OnReceive метод не вызывается по какой-то причине
я не применял каких-либо фильтров или что-нибудь,Почему OnReceive не называется расширением BroadcastReceiver в Android
Вот класс:
import java.util.ArrayList;
import java.util.Calendar;
import android.content.BroadcastReceiver;
import android.content.Intent;
import android.content.Context;
import android.util.Log;
public class RegisterListener extends BroadcastReceiver {
private final int DELAY_TIME = 5;
private int m_seconds = 0;
private int m_minutes = 0;
private int m_hours = 0;
static ArrayList<BroadcastReceiverListener> listeners = new ArrayList<BroadcastReceiverListener>();
@Override
public void onReceive(Context context, Intent intent) {
Log.d("ScreenReceiver Action:",intent.getAction());
Calendar c = Calendar.getInstance();
m_seconds = c.get(Calendar.SECOND);
m_minutes = c.get(Calendar.MINUTE);
m_hours = c.get(Calendar.HOUR);
for (BroadcastReceiverListener listener:listeners){
listener.onReceive(m_hours, m_minutes, m_seconds);
}
}
public static void addBroadcastReceiveListener (BroadcastReceiverListener listener){
if(!listeners.contains(listener)){
listeners.add(listener);
}
}
public void removeBroadcastReceiveListener (BroadcastReceiverListener listener){
if(listeners.contains(listener)){
listeners.remove(listener);
}
}
Вот заявление в манифесте (ребенок применения)
<receiver android:name=".RegisterListener"></receiver>
Edit: Это фильтр я пытался добавить (внутри OnReceive())
IntentFilter filter = new IntentFilter(Intent.ACTION_USER_PRESENT);
BroadcastReceiver mReceiver = new RegisterListener();
registerReceiver(mReceiver, filter);
Я получаю сообщение об ошибке:
The method registerReceiver(BroadcastReceiver, IntentFilter) is undefined for the type RegisterListener
Выглядит хорошо, как вы транслируете свои намерения? Отправьте этот код. – Sam
Как насчет 'намеренного фильтра 'в декларации получателя; проверить http://www.vogella.com/articles/AndroidBroadcastReceiver/article.html – Trinimon
Я хочу поймать 'ACTION_USER_PRESENT', прежде чем добавлять какие-либо фильтры, не должен ли я поймать никаких намерений без него? во всяком случае, я попытался добавить фильтры, но если я добавлю фильтр, он не сможет найти метод 'registerReceiver'. – SagiLow