我想用我的應用程序設置鬧鐘和我使用鬧鐘共同意圖爲描述here。爲什麼startActivityForResult不會從AlarmClock.ACTION_SET_ALARM意圖返回任何結果?
這裏是我的代碼:
public void createAlarm(String message, int hour, int minutes) {
Intent intent = new Intent(AlarmClock.ACTION_SET_ALARM)
.putExtra(AlarmClock.EXTRA_MESSAGE, message)
.putExtra(AlarmClock.EXTRA_HOUR, hour)
.putExtra(AlarmClock.EXTRA_MINUTES, minutes)
.putExtra(AlarmClock.EXTRA_SKIP_UI, true);
if (intent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(intent, SET_ALARM_REQUEST_CODE);
}
}
這裏的onActivityResult()
:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == SET_ALARM_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
if (data != null) {
Toast.makeText(getBaseContext(), "Alarm for " + data.getData().toString() + " has been set successfully!", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getBaseContext(), "data is null", Toast.LENGTH_SHORT).show();
}
} else {
Toast.makeText(getBaseContext(), "resultCode not OK", Toast.LENGTH_SHORT).show();
}
}
}
這裏的問題是,我得到這個消息Toast
:resultCode not OK
。
那麼,爲什麼startActivityForResult
沒有返回任何結果呢?
因爲很可能你的活動將在鬧鐘之前死亡。這是很長時間的任務(例如15小時)。將結果返回到開始活動是我認爲不好的設計。這就是爲什麼它不會返回任何結果。 –