Versuchen Sie, httpCache Android zu nutzen?

Ich versuche, okhttpclient mit Retrofit zu verwenden, um das Caching einzurichten. Wie richte ich das Ablaufdatum ein und füge es meinem restApiManager hinzu? Ich bin mir nicht sicher, welcher Service sein soll ...

Hier ist der Code:

public class ApiManager {

    private static final String API_URL = "ip";


    public static AsynchronousApi getInstance() {
        if(service == null) {
            OkHttpClient okHttpClient = new OkHttpClient();
            File cacheDir = new File(System.getProperty("java.io.tmpdir"), UUID.randomUUID().toString());
            HttpResponseCache cache = null;
            try {
                cache = new HttpResponseCache(cacheDir, 1024);
            } catch (IOException e) {
                e.printStackTrace();
            }
            okHttpClient.setResponseCache(cache);

            RestAdapter restAdapter = new RestAdapter.Builder()
                    .setEndpoint(API_URL)
                    .setLogLevel(RestAdapter.LogLevel.FULL)
                    .setClient(new OkClient(okHttpClient))
                    .setErrorHandler(new ErrorHandler() {

                        @Override
                        public Throwable handleError(RetrofitError arg0) {
                            if(arg0.getResponse().getStatus() == 404)
                                return new Exception("Url does not exists");

                            return new Exception(arg0.getMessage());
                        }
                    })
                    .build();
            service = restAdapter.create(AsynchronousApi.class);
        }

        return service;
    }



//    //create adapter
    private static final AsynchronousApi ASYNCHRONOUS_API = getInstance();

    //call service to initiate
    public static AsynchronousApi getAsyncApi() {
        return ASYNCHRONOUS_API;
    }

    //Call interface
    public interface AsynchronousApi {

        //USER

        //Register User
        @FormUrlEncoded
        @POST("/register")
        public void registerUser(
                @Field("email") String email,
                @Field("username") String username,
                @Field("password") String password,
                Callback<UserResponse> callback); //


         //Search User
        @GET("/search_user")
        public void searchUser(
                @Query("username") String username,
                Callback<UserResponse> callback); // userfound  cache users

Antworten auf die Frage(1)

Ihre Antwort auf die Frage