0
您可以使用BroadcastReceiver
來設置「警報」。就像不是通知,而是警報?使用BroadcastReceiver設置鬧鐘?
所以基本上,如果我點擊一個按鈕,它可以設置從現在開始的20分鐘警報或任何我的變量。我可以想出如何使用它來設置從當前時間20分鐘的警報,但我可以做一個儘可能遠的通知。
請注意,我的變種是在我的代碼20秒
public class SimpleSleepActivity extends Activity {
/** Called when the activity is first created. */
Button setAlarm, setTimer;
int hours = 1, alarmSec = 10;
Toast mToast;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
setAlarm = (Button) findViewById(R.id.bSetAlarm);
setTimer = (Button) findViewById(R.id.bSetTimer);
setTimer.setOnClickListener(mAlarmFromNow);
}
private OnClickListener mAlarmFromNow = new OnClickListener() {
public void onClick(View v) {
// When the alarm goes off, broadcast an Intent to the
// BroadcastReceiver. This is an Intent with an explicit class
// name to have a receiver instantiated and called, and then
// create an IntentSender to have the intent executed as a broadcast.
Intent intent = new Intent(SimpleSleepActivity.this,
AlarmFromNow.class);
PendingIntent sender = PendingIntent.getBroadcast(
SimpleSleepActivity.this, 0, intent, 0);
// Finding the current time and setting and alarm for XX seconds
// from that time
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.add(Calendar.SECOND, alarmSec);
// Scheduling the alarm
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
if (mToast != null) {
mToast.cancel();
}
mToast = Toast.makeText(SimpleSleepActivity.this,
//Show the user what they imputed
"The alarm will go off in " + alarmSec + " Seconds", Toast.LENGTH_LONG);
mToast.show();
}
};
}
我的其他類是這樣的:
public class AlarmFromNow extends BroadcastReceiver {
public void onReceive(Context context, Intent intent) {
//Display a toast after alarmSec is counted
Toast.makeText(context, R.string.alarm_from_now, Toast.LENGTH_LONG)
.show();
}
}
基本上你想要什麼?需要設置音調還是什麼? –