服務中的變量的值我的程序是一個活動來標識用戶時,通過按下按鈕識別該用戶發送字符串到另一個類(alarmChecker),擴展到服務。如果數據庫的值已更改,並且您注意到更改啓動,則此服務每30秒檢查一次。消除在android
發送的主類的字符串(MainActivity)我不喜歡這樣寫道:
// Class MainActivity
Intent intent = new Intent (MainActivity.this, alarmChecker.class);
Bundle data = new Bundle();
data.putString ("user", user);
intent.putExtras (data);
pendingIntent = PendingIntent.getService (MainActivity.this, 0, intent, 0);
則類「alarmChecker」接收參數如下:
// class alarmChecker
@Override
public int onStartCommand(Intent intent, int flags, int startId){
super.onStartCommand(intent, flags, startId);
// Toast.makeText(this, "MyAlarmService.onStart()", Toast.LENGTH_LONG).show();
Bundle data = intent.getExtras();
user = data.getString("user");
Toast.makeText(getApplicationContext(), "user: "+user, Toast.LENGTH_LONG).show();
}
,我想如果用戶按下Return按鈕或退出應用程序並返回到主屏幕(MainActivity)並與另一個不同的用戶進行身份識別,則AlarmChecker類將採用新值,但問題在於抓取。始終保持您第一次輸入的值。
如何解決?
感謝您的回答和問候。
你在用pendingIntent做什麼?如果您使用AlarmManager定期啓動服務,然後更改pendingIntent,那麼AlarmManager將不會更改,它是使用第一個設置的 - 在啓動AlarmManager之後更改它不會更改更改交付的Intent或與之相關的額外內容。 – JRaymond