Java 寄存器报警接收器

Java 寄存器报警接收器,java,android,receiver,Java,Android,Receiver,我尝试在mainActivity中注册广播接收器(因为我必须有非静态接收器才能调用mainActivity的函数) 目前,接收者没有收到。。。。我该怎么办 mainActivity.java public class mainActivity { private BroadcastReceiver alarm; ... Intent startIntent = new Intent("WhatEverYouWant"); PendingIntent start

我尝试在mainActivity中注册广播接收器(因为我必须有非静态接收器才能调用mainActivity的函数)

目前,接收者没有收到。。。。我该怎么办

mainActivity.java

public class mainActivity
{
    private BroadcastReceiver alarm;

    ...

    Intent startIntent = new Intent("WhatEverYouWant");
    PendingIntent startPIntent = PendingIntent.getBroadcast(this, 0, startIntent, 0);
    AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
    alarm.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + 10000, startPIntent);

    IntentFilter filter = new IntentFilter();
    filter.addCategory(Intent.CATEGORY_DEFAULT);

    this.alarm = new AlarmReceiver();
    registerReceiver(this.alarm, filter);

}

public class AlarmReceiver extends BroadcastReceiver
{    
    public AlarmReceiver ()
    {
    }

    public void onReceive(Context context, Intent intent)
    {
         doRestartApp();
    }
}

Intent必须与IntentFilter具有相同的名称。。。 现在它工作了

public class mainActivity
{
    private BroadcastReceiver alarm;

    ...

    Intent startIntent = new Intent("MESSAGE_PROCESSED");
    PendingIntent startPIntent = PendingIntent.getBroadcast(this, 0, startIntent, 0);
    AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
    alarm.set(AlarmManager.RTC_WAKEUP,System.currentTimeMillis() + 10000, startPIntent);

    IntentFilter filter = new IntentFilter("MESSAGE_PROCESSED");
    filter.addCategory(Intent.CATEGORY_DEFAULT);

    this.alarm = new AlarmReceiver();
    registerReceiver(this.alarm, filter);

}

public class AlarmReceiver extends BroadcastReceiver
{    
    public AlarmReceiver ()
    {
    }

    public void onReceive(Context context, Intent intent)
    {
         doRestartApp();
    }
}