为android中的对话框安排计时器



我需要根据以下流程显示"速率"对话框

打开应用程序(第一次)-->每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);
    }

好的,也许可以看看Calendar类。日期的设置方法已弃用,因此不使用

nextMonthDate = new Date()

更可能使用

nextMonthDate = new Calendar();

因为这样您就可以使用Calendar文档中规定的方法,如add,而不是使用setDate或setMonth。我希望这能有所帮助。

最新更新