在调用Alarm Manager时,Pending Intent与其他功能无关

时间:2013-04-19 05:51:11

标签: android alarmmanager android-pendingintent

我在这里看过很多关于传递额外内容的人有类似问题的例子,但我仍然没有看到我的问题。

这是我设置附加功能的代码:

            PLAY_MUSIC = "Y";
        Intent intentAlarm = new Intent(this, MainActivity.class);
        intentAlarm.putExtra("playMusic",PLAY_MUSIC);
        intentAlarm.putExtra("mPos", mPos);
        // 12345 is a request code
        PendingIntent pIntent = PendingIntent.getActivity(this, 12345, 
                intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
        AlarmManager am = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
        am.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), pIntent );

这是我在onCreate()

中获取它们的地方
protected void onCreate(Bundle savedInstanceState) {
    if (VERBOSE) Log.v(TAG, "+++ ON CREATE +++");
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);        

    Intent intent = getIntent();
    playMusicFlag = intent.getStringExtra("playMusic"); 
    mPos = intent.getIntExtra("mPos", 0);
    if (playMusicFlag == "Y") {
        if (VERBOSE) Log.v(TAG, "+++ playMusicFlag NOT SET+++");
        playSongs();
        showStopAlarmButton();
    } // if        

playMusicFlag没有设置。不调用playSongs和showStopAlarm。有人能告诉我这里我做错了什么吗?

2 个答案:

答案 0 :(得分:0)

记录您的playMusicFlag字符串并确认您是否获得任何值,然后比较您的字符串;

这样:

if (playMusicFlag.equalsIgnoreCase("Y"))

相反:

if (playMusicFlag == "Y") 

答案 1 :(得分:-1)

在检索

时使用这样的方法
intent.getExtras().getString("playMusic");

我认为它有效。