android - 广播接收器和未决 Intent : Show a toast

标签 android android-intent broadcastreceiver alarmmanager

以下是必须触发 BroadCast Receiver 的警报代码:

Intent intentWithData = new Intent(context, TokenActivity.class);
intentWithData.putExtra(Constants.ID,id);
intentWithData.putExtra(Constants.POSITION, finalI);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 007, intentWithData, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent);

广播接收器的代码是

import android.content.Context;
import android.content.Intent;
import android.widget.Toast;

public class TokenBroadcastReceiver extends BaseBroadCastReceiver {

String Id;
int position;
@Override
public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "Create a toast", Toast.LENGTH_SHORT).show();
}
}

list 是:

<receiver android:name=".broadcastReceiver.TokenBroadcastReceiver"/>

toast 没有出现。这段代码哪里出错了?

最佳答案

您正在混合 2 种东西。 如果您希望您的接收器获得 Intent :

Intent intentWithData = new Intent(context, TokenBroadcastReceiver.class);
intentWithData.putExtra(Constants.ID,id);
intentWithData.putExtra(Constants.POSITION, finalI);

PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 7, intentWithData, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent);

如果您希望您的 Activity 获得 Intent :

Intent intentWithData = new Intent(context, TokenActivity.class);
intentWithData.putExtra(Constants.ID,id);
intentWithData.putExtra(Constants.POSITION, finalI);

PendingIntent pendingIntent = PendingIntent.getActivity(context, 7, intentWithData, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 5000, pendingIntent);

另外,请确保您的接收器已在您的 AndroidManifest.xml 中注册

关于android - 广播接收器和未决 Intent : Show a toast,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052630/

相关文章:

android - 使图像在android 2中可点击

java - 获取给定时区的当前时间 : android

java - Android 使用不同的工具

android - 如何向 AOSP 添加自定义 INTENT 以授予对系统级控制调用的访问权限?

android - 仅当您显式调用 finish() 时才会调用 onDestroy 吗?或者有什么异常(exception)吗?

Android - 如何销毁广播接收器?

java - BroadcastReceiver 中的 EditText

java - 发送和接收短信以验证手机号码

Android:设备重启时是否触发了 android.intent.action.DATE_CHANGED?

android - 为什么 FLAG_ACTIVITY_NO_HISTORY 在设备上不起作用,但在模拟器上起作用?