android 는 특정한 조작 이 매일 지정 한 횟수 만 조작 할 수 있 도록 제한 합 니 다(예시 코드 상세 설명)

최근 에 필요 한 것 이 있 습 니 다.시작 페이지 의 차단 페이지 는 하루 에 3 번 만 표시 되 고 세 번 이 넘 으 면 다른 페이지 가 표 시 됩 니 다.그리고 다음 날 에 야 다시 표시 할 수 있 습 니 다.Share Preferences 를 이용 하여 일수 와 매일 횟수 를 저장 할 수 있 습 니 다.아마도 같은 날 이 라면 저 장 된 횟수 를 가 져 오 세 요.횟수 가 3 보다 적 으 면 차단 페이지 를 꺼 내 고 매번 팝 업 할 수 있 습 니 다.횟수 를 1 로 늘 리 고 횟수 와 당일 시간 을 저장 합 니 다.같은 날 이 아니라면 횟수 를 1 로 할당 하고 천부 값 으로 마지막 방문 시간 을 주 고 현재 횟수 를 저장 합 니 다.구체 적 인 실현 은 다음 과 같다.

package com.example.demo1.test;
 
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
 
import com.example.demo1.R;
 
import java.util.Calendar;
 
public class TwoActivity extends AppCompatActivity {
 private static final String TAG = "TwoActivity";
 
 @Override
 protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.activity_two);
 findViewById(R.id.test).setOnClickListener(new View.OnClickListener() {
  @Override
  public void onClick(View view) {
 
  int frequency = SharePreferencesUtils.getIntValue(TwoActivity.this,"time_and_frequency","frequency");
  int today = Calendar.getInstance().get(Calendar.DAY_OF_YEAR);
  int lastDay = SharePreferencesUtils.getIntValue(TwoActivity.this,"time_and_frequency","lastDay");
  Log.i(TAG, "onClick-----: "+"today:"+today);
  Log.i(TAG, "onClick-----: "+"lastDay:"+lastDay);
  Log.i(TAG, "onClick-----: "+"frequency:"+frequency);
  if(today != lastDay)
  {
   //TODO       ;
 
   //  SharePreferences       ,       ;
   frequency = 1;
   Log.i(TAG, "onClick-----: "+"         "+frequency);
   // today   lastDay  today == lastDay
   SharePreferencesUtils.putIntValue(TwoActivity.this,"time_and_frequency","lastDay",today);
   SharePreferencesUtils.putIntValue(TwoActivity.this,"time_and_frequency","frequency",frequency);
  }else if(today == lastDay){
   if(frequency < 3) {
   //TODO       ;
   Log.i(TAG, "onClick-----: "+"       "+frequency);
   frequency++;
   SharePreferencesUtils.putIntValue(TwoActivity.this,"time_and_frequency","lastDay",lastDay);
    SharePreferencesUtils.putIntValue(TwoActivity.this,"time_and_frequency","frequency",frequency);
   }else {
   //TODO      
   Log.i(TAG, "onClick-----: "+"    ");
   }
  }
  }
 });
 }
}
SharePreferences Utils 코드 는 다음 과 같 습 니 다.
/*
 * Copyright (c) 2017- WaitFun Inc. All Rights Reserved.
 */

package com.example.demo1.test;
import android.app.Activity;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import java.util.Map;
public class SharePreferencesUtils {
 private final static String TAG = SharePreferencesUtils.class.getName();
 private final static SharedPreferences getSharePreferences(Context context, String fileName) {
 return context.getSharedPreferences(fileName, Activity.MODE_PRIVATE);
 }
 public static String getStrValue(Context context, String fileName, String key) {
 return getSharePreferences(context, fileName).getString(key, "");
 }
 public static int getIntValue(Context context, String fileName, String key) {
 return getSharePreferences(context, fileName).getInt(key, 0);
 }
 public static boolean getBooleanValue(Context context, String fileName, String key) {
 return getSharePreferences(context, fileName).getBoolean(key, false);
 }
 public static void putBooleanValue(Context context, String fileName, String key, boolean value) {
 Editor editor = getSharePreferences(context, fileName).edit();
 editor.putBoolean(key, value);
 editor.commit();
 editor.clear();
 editor = null;
 }
 public static void putStringValue(Context context, String fileName, String key, String value) {
 Editor editor = getSharePreferences(context, fileName).edit();
 editor.putString(key, value);
 editor.commit();
 editor.clear();
 editor = null;
 }
 public static void putIntValue(Context context, String fileName, String key, int value) {
 Editor editor = getSharePreferences(context, fileName).edit();
 editor.putInt(key, value);
 editor.commit();
 editor.clear();
 editor = null;
 }
 public static void putMapStringValue(Context context, String fileName, Map<String, String> editorValue) {
 Editor editor = getSharePreferences(context, fileName).edit();
 for (Map.Entry<String, String> entry : editorValue.entrySet()) {
  String key = entry.getKey();
  String value = entry.getValue();
  editor.putString(key, value);
 }
 editor.commit();
 editorValue.clear();
 editorValue = null;
 }
 public static void putMapIntegerValue(Context context, String fileName, Map<String, Integer> editorValue) {
 Editor editor = getSharePreferences(context, fileName).edit();
 for (Map.Entry<String, Integer> entry : editorValue.entrySet()) {
  String key = entry.getKey();
  Integer value = entry.getValue();
  editor.putInt(key, value);
 }
 editor.commit();
 editorValue.clear();
 editorValue = null;
 }
}
총결산
안 드 로 이 드 가 매일 지정 한 횟수 만 조작 할 수 있 도록 제한 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 안 드 로 이 드 제한 조작 횟수 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 찾 아 보 세 요.앞으로 많은 지원 을 바 랍 니 다!

좋은 웹페이지 즐겨찾기