Android AsyncTask, getting SharedPreferences, stuck

I’m stuck with a problem that seems very easy.. I’ve seen lot of threads concerning my problem, but none of them helped me. It’s about getting Shared Prefferences..

The thing is I want to get result from calculations in doInBackground method, but I just don’t know how to use method getSharedPreferences.

I have my main activity called MainActivity. I also created new Java Class that should do something in the background. Here’s the code:

package com.example.pablo.zad3;

import android.content.SharedPreferences;
import android.os.AsyncTask;

public class Background extends AsyncTask<Integer,Void,String>{

    @Override
    protected String doInBackground(Integer... params) {
        Integer n = params[0];
        StringBuilder sb=new StringBuilder();
       for(int i=1;i<250;i++)
       {
           sb.append(i+ " ");
           sb.append(n*i+"n");
       }
        return sb.toString();
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        SharedPreferences prefs = //WHAT NOW??
    }
}

Yet, there’s clearly something I don’t understand, cause I don’t know how to use it. Please provide me with some example code that would work in my case.

Answer

Your code needs to be modified like following:

package com.example.pablo.zad3;

import android.content.SharedPreferences;
import android.content.Context;
import android.os.AsyncTask;

public class Background extends AsyncTask<Integer,Void,String>{

    private Context context;

    public Background(Context context) {
        this.context = context;
    }

    @Override
    protected String doInBackground(Integer... params) {
        Integer n = params[0];
        StringBuilder sb=new StringBuilder();
       for(int i=1;i<250;i++)
       {
           sb.append(i+ " ");
           sb.append(n*i+"n");
       }
        return sb.toString();
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this.context);
    }
}

Based on the questions you have asked (in main question along with those in comments), I guess you have never used SharedPreferences. Here is the link for your reference. http://developer.android.com/reference/android/content/SharedPreferences.html http://developer.android.com/training/basics/data-storage/shared-preferences.html http://www.pcsalt.com/android/storing-data-in-sharedpreferences-android/

Leave a Reply

Your email address will not be published. Required fields are marked *