安排计时器在android中对话框

时间:2014-10-13 07:43:57

标签: android date timer

我处于需要根据以下流程显示“比率”对话框的情况

打开应用(第一次) - >每2分钟显示一次对话

如果评级 - >下个月显示对话框

如果点击以后的按钮 - >下周显示对话框。

String rate_value=myPref.getString("rate_value", "later");

        Log.e("rate", String.valueOf(rate_value));


        if (rate_value=="later") {

            initCalendarNextWeek();

            myTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub
                    activity.runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            showRateDialog();
                        }
                    });
                }
            }, nextWeekDate);
        }




        else if (rate_value=="now") {

            initCalendarNextMonth();

            myTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub

                    activity.runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            showRateDialog();
                        }
                    });

                }
            }, nextMonthDate);
        }





        else if (rate_value=="no_thanks") {
            myTimer.schedule(new TimerTask() {

                @Override
                public void run() {
                    // TODO Auto-generated method stub

                    activity.runOnUiThread(new Runnable() {

                        @Override
                        public void run() {
                            // TODO Auto-generated method stub
                            showRateDialog();
                        }
                    });

                }
            }, 120000, 120000);
        }


public void initCalendarNextMonth(){
        cal=Calendar.getInstance();
        cal_day=cal.get(Calendar.DATE);
        cal_month=cal.get(Calendar.MONTH);
        cal_year=cal.get(Calendar.YEAR);
        nextMonthDate=new Date();
        nextMonthDate.setDate(cal_day);
        nextMonthDate.setMonth(cal_month+1);
        nextMonthDate.setYear(cal_year);
    }

    public void initCalendarNextWeek(){
        cal=Calendar.getInstance();
        cal_day=cal.get(Calendar.DATE);
        cal_month=cal.get(Calendar.MONTH);
        cal_year=cal.get(Calendar.YEAR);
        nextWeekDate=new Date();
        nextWeekDate.setDate(cal_day+7);
        nextWeekDate.setMonth(cal_month);
        nextWeekDate.setYear(cal_year);
    }

1 个答案:

答案 0 :(得分:0)

好的,也许看看Calendar课程。不推荐使用Date的set方法,而不是使用

nextMonthDate = new Date()

而不是使用

nextMonthDate = new Calendar();

因为那样你就可以使用Calendar文档中陈述的方法,比如add,而不是使用setDate或setMonth。我希望这会有所帮助。