限制奖励按钮按一次一小时

时间:2017-11-06 17:11:28

标签: java android timer counter limit

我在我的应用中设置了奖励广告系统。在每次按下我的奖励按钮时,奖励广告显示。但我希望每小时限制一次。

这是我的按钮onclick,它位于我的广告加载方法中。我已经这样做了,因为在某些设备上有一个缓慢的互联网连接,广告没有在人们按下按钮之前加载。

 @Override
        public void onRewardedVideoAdLoaded() {
            Toast.makeText(Competition.this, "Advert loaded please click the Reward button to continue", Toast.LENGTH_LONG).show();
            btn1 = (Button) findViewById(R.id.btncomp_ok);
            btn1.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    showRewardedVideo();
                }
            });

        }

我还有一个连接到我的应用程序的Firebase数据库。这会计算广告被观看到最后的时间。

 ref.child("Reward").child(Userid).child("screenname").setValue(Username);
    ref.child("Reward").child(Userid).child("watched").runTransaction(new Transaction.Handler() {
        @Override
        public Transaction.Result doTransaction(MutableData mutableData) {

            if (mutableData.getValue() == null) {
                mutableData.setValue(1);
            } else {
                int count = mutableData.getValue(Integer.class);
                mutableData.setValue(count + 1);
            }
            ;

            return Transaction.success(mutableData);


        }

1 个答案:

答案 0 :(得分:2)

您可以检查他们上次点击的时间,并确保在调用showRecordedVideo()之前已经过了一个小时。 lastClickTime可以存储在db或sharedpreferences中。

@Override
public void onRewardedVideoAdLoaded() {
    static int ONEHOUR = 60 * 60 * 1000;
    Toast.makeText(Competition.this, "Advert loaded please click the Reward button to continue", Toast.LENGTH_LONG).show();
    btn1 = (Button) findViewById(R.id.btncomp_ok);
    btn1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (System.currentTimeMillis() >= lastClickTime + ONEHOUR) {
                showRewardedVideo();
            }
        }
    });
}