实际上,您不需要指定操作,因为您在intent中使用了类AlarmReceiver.class.

在AndroidManifest.xml中,确保在< application>中有接收器定义.标签,类似于:

< receiver android:name =“AlarmReceiver”>

编辑:

好的,有两种方法可以使用你的广播接收器.

1)从您提供的代码,AlarmReceiver.java将包含:

public final class AlarmReceiver extends BroadcastReceiver {

@Override

public void onReceive(Context context, Intent intent) {

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

}

}

和HelloAndroid2.java:

public class HelloAndroid2 extends Activity {

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

Intent intent = new Intent(this, AlarmReceiver.class);

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,

intent, PendingIntent.FLAG_ONE_SHOT);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);

Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();

}

}

像这样,您可以将广播接收器设置为使用AndroidManifest.xml和标签< receiver ...>

2)第二路.通过这种方式,您只需使用1个文件HelloWorld2.java:

在您的活动中,创建您的广播接收器并进行注册.

public class HelloWorld2 extends Activity {

private SharedPreferences prefs;

private String mName;

BroadcastReceiver alarmReceiver = new BroadcastReceiver() {

@Override

public void onReceive(Context context, Intent intent) {

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

}

};

public static final String ACTION_NAME = "com.helloworld.MYACTION";

private IntentFilter myFilter = new IntentFilter(ACTION_NAME);

@Override

protected void onPause() {

unregisterReceiver(alarmReceiver);

super.onPause();

}

@Override

protected void onResume() {

registerReceiver(alarmReceiver, myFilter);

super.onResume();

}

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

registerReceiver(alarmReceiver, myFilter);

Intent intent = new Intent(ACTION_NAME);

PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,

intent, PendingIntent.FLAG_ONE_SHOT);

AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + (10 * 1000), pendingIntent);

Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();

}

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐