приложение для будильника на андроид

может ли кто-нибудь помочь мне решить мою проблему, я должен сделать так, чтобы будильник срабатывал через 10 минут от текущего времени, и его нужно повторять каждые 10 минут. Я написал этот код, но он не сработал, он запускается случайным образом: "

public class AlarmNewActivity extends Activity {
    /** Called when the activity is first created. */

    Intent intent;
    PendingIntent sender;
     AlarmManager am;
     Button bStart, bStop ;
     long mCurrentTime, firstTime ;
     Calendar calendar;
     TextView tv;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        bStart = (Button) findViewById (R.id.button1);
        bStop = (Button) findViewById (R.id.button2);
        tv = (TextView) findViewById (R.id.textView1);

        intent = new Intent(AlarmNewActivity.this, RepeatingAlarm.class);
        sender = PendingIntent.getBroadcast(AlarmNewActivity.this, 0, intent, 0);
        am = (AlarmManager)getSystemService(ALARM_SERVICE);
        calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());


        mCurrentTime = calendar.getTimeInMillis();


        bStart.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {
                tv.setText(""+ firstTime + "\n" + mCurrentTime );

                am.setRepeating(AlarmManager.RTC_WAKEUP,
                        mCurrentTime + 10 *1000, 5*1000, sender);
               new Handler().postDelayed(new Runnable() {
                    public void run() {
                         bStop.performClick();
                    }
                }, ( mCurrentTime + 50 * 1000 )); 

            }
        });


        //==================================================================================

        bStop.setOnClickListener(new View.OnClickListener() {

            public void onClick(View v) {

                am.cancel(sender);
            }
        });
     }
}

person Monerah    schedule 07.05.2012    source источник


Ответы (1)


mCurrentTime = calendar.getTimeInMillis();

Должен быть внутри onClick, чтобы получить текущее время при нажатии

public void onClick(View v) {

mCurrentTime = calendar.getTimeInMillis();
...
...
}
person Kickaha    schedule 07.05.2012
comment
большое спасибо, это работает, и я должен поставить calendar = Calendar.getInstance(); Calendar.setTimeInMillis(System.currentTimeMillis()); внутри кнопки тоже .. так ценно спасибо .. - person Monerah; 07.05.2012
comment
вы можете увидеть это, пожалуйста: stackoverflow.com/questions/10485358/ - person Monerah; 07.05.2012