馬上加入Android 台灣中文網,立即免費下載應用遊戲。
您需要 登錄 才可以下載或查看,沒有帳號?註冊
x
假設我設定(2015/01/01 早上00:0)時會Log.e("TAG","123");
但是時間一到卻沒有反應
但如果我是設定30秒後Log.e("TAG","123");卻可以
請問是我寫的code哪裡有問題呢
-
畫面布局只有兩個btn跟Textview
-
- import java.util.Calendar;
- import android.R.string;
- import android.app.Activity;
- import android.app.AlarmManager;
- import android.app.DatePickerDialog;
- import android.app.Dialog;
- import android.app.PendingIntent;
- import android.app.TimePickerDialog;
- import android.content.Context;
- import android.content.Intent;
- import android.os.Bundle;
- import android.renderscript.Sampler.Value;
- import android.util.Log;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.Button;
- import android.widget.DatePicker;
- import android.widget.TextView;
- import android.widget.TimePicker;
- public class MainActivity extends Activity {
- /**Date**/
- private Button dateButton;
- private Calendar calendar =Calendar.getInstance();
- private int mYear = calendar.get(Calendar.YEAR),
- mMonth = calendar.get(Calendar.MONTH),
- mDay = calendar.get(Calendar.DAY_OF_MONTH);
- private TextView dateText;
- private DatePickerDialog datePickerDialog;
- /**Time**/
- private Button timeButton;
- private int mHour = calendar.get(Calendar.HOUR_OF_DAY),
- mMin = calendar.get(Calendar.MINUTE);
- private TextView timeText;
- private TimePickerDialog timePickerDialog;
- /****/
- int init, init2=0 ;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- //Text及Btn
- Button dateBtn = (Button)findViewById(R.id.dateButton);
- dateText = (TextView)findViewById(R.id.dateText);
- Button timeBtn = (Button)findViewById(R.id.timeButton);
- timeText = (TextView)findViewById(R.id.timeText);
- //Date按鈕監聽
- dateBtn.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- showDialog(0);
- datePickerDialog.updateDate(mYear, mMonth, mDay);
- }
- });
- //Time按鈕監聽
- timeBtn.setOnClickListener(new OnClickListener(){
- @Override
- public void onClick(View v){
- showDialog(1);
- timePickerDialog.updateTime(mHour, mMin);
- }
- });
- }
- @Override
- protected Dialog onCreateDialog(int id, Bundle args){
- switch(id)//get showDialog, ↑id is showDialog
- {
- case 0://Date
- datePickerDialog = new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
- @Override
- public void onDateSet(DatePicker view, int year, int month,int day) {
- mYear = year;
- mMonth = month+1;
- mDay = day;
- init = 1;
- date();
- }
- }, mYear,mMonth, mDay);
- return datePickerDialog;
-
- case 1://Time
- timePickerDialog = new TimePickerDialog(this, new TimePickerDialog.OnTimeSetListener() {
- @Override
- public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
- // TODO Auto-generated method stub
- mHour = hourOfDay;
- mMin = minute;
- init = 0;
- date();
- }
- }, mHour,mMin, false);
- return timePickerDialog;
- }
-
- return null;
- }
- protected void date() {
- // TODO Auto-generated method stub
- if (init == 1) {
- dateText.setText("你設定的日期為"+mYear+"年"+mMonth+"月"+mDay+"日");
- init2 = init2+1;
- } else if ( init == 0) {
- timeText.setText("你設定的時間為"+mHour+":"+mMin);
- init2 = init2+1;
- }
- if (init2 ==2) {
- Log.e("ready","start");
- Log.e("ok",String.valueOf(mYear)+"年"+String.valueOf(mMonth)+"月"+String.valueOf(mDay)+"日"
- +String.valueOf(mHour)+":"+String.valueOf(mMin));
- /****/
- Calendar cal = Calendar.getInstance();
- cal.set(mYear,mMonth,mDay,mHour,mMin);
- Intent intent = new Intent();
- intent.setClass(this, AlarmReceiver.class);
- PendingIntent pending = PendingIntent.getBroadcast(this, 0, intent, 0);
- AlarmManager alarm = (AlarmManager) this.getSystemService(Context.ALARM_SERVICE);
- alarm.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pending);
- init2 = 0;
- Log.e("initing","init ok");
- }
- }
- }
複製代碼
- package com.showview;
- import android.content.BroadcastReceiver;
- import android.content.Context;
- import android.content.Intent;
- import android.util.Log;
-
- public class AlarmReceiver extends BroadcastReceiver {
- private static final String TAG = "from Activity";
- @Override
- public void onReceive(Context ctx, Intent intent) {
- Log.d(TAG, "123");
- }
- }
複製代碼 |
|