java - Android - 带有待处理 Intent 的多个警报,如何确定正在调用哪个 Intent ?

标签 java android android-intent alarmmanager

我正在使用 2 个独立的警报。我的类中有一个方法,它创建 2 个不同的挂起 Intent 来启动 2 个警报。此方法在完成后调用广播方法,但是根据它接收到的 Intent ,我需要执行不同的操作

提前致谢,

安迪

提示类

public void setSleepPrompts(Context context){
    try{
        Intent intent = new Intent(context, SleepPromptReceiver.class ); 
        PendingIntent firstSender = PendingIntent.getBroadcast(context, 1, intent, 0);
        PendingIntent secondSender = PendingIntent.getBroadcast(context, 2, intent, 0);

        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        am.set(AlarmManager.RTC_WAKEUP, (this.getBedTimeEpoch() - this.firstPromptOffset), firstSender);
        am.set(AlarmManager.RTC_WAKEUP, (this.getBedTimeEpoch() - this.secondPromptOffset), secondSender);
    } catch (Exception e){
        Log.i(TAG, e.toString());
    }
}

广播接收器类

@Override
public void onReceive(Context context, Intent intent) {
    try{
        if(intent.GET_THE_INTENT_ID?)
        Toast.makeText(context, "kapow chow", Toast.LENGTH_SHORT).show();
    } catch (Exception e){
        Toast.makeText(context, e.toString(), Toast.LENGTH_SHORT).show();
    }
}

最佳答案

创建 Intent 时使用intent.putExtra("id", "intent x"),然后

if(intent.getStringExtra("id").equals("intent x"))
        Toast.makeText(context, "kapow chow", Toast.LENGTH_SHORT).show();

关于java - Android - 带有待处理 Intent 的多个警报,如何确定正在调用哪个 Intent ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6898770/

相关文章:

android-layout - 为什么我的 Android setOnItemClickListener 不起作用?

Java Swing添加JPanel到JLayeredpane到Jframe动态改变大小

java - 无法对非静态方法进行静态引用 (Android getApplicationContext())

java - Objective C NSData 等效十六进制值(iOS)在 JAVA(Android)中显示负整数值?

java - API向Retrofit返回404

android - 在 WebView 中打开 PDF

java - Sl4j 不记录来自 JPA 的 sql 语句

maven - Centos 7 : Java version for Maven

Android ListView 按钮文本颜色在从上到下滚动时发生变化?

android - 有 Intent 地启动摄像机