All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.octo.android.robospice.motivations.loader.LoaderDemoActivity Maven / Gradle / Ivy

The newest version!
package com.octo.android.robospice.motivations.loader;

import android.os.Bundle;
import android.support.v4.app.LoaderManager.LoaderCallbacks;
import android.support.v4.content.AsyncTaskLoader;
import android.support.v4.content.Loader;
import android.util.Log;

import com.octo.android.robospice.motivations.R;
import com.octo.android.robospice.motivations.common.DemoFragmentActivity;

/**
 * Based on http://stackoverflow.com/questions/9077212/update-progressbar-from- asynctaskloader
 * 
 * @author stephanenicolas
 * 
 */
public class LoaderDemoActivity extends DemoFragmentActivity implements LoaderCallbacks< Void > {

    @Override
    public void startDemo() {
        getSupportLoaderManager().initLoader( 0, (Bundle) null, this );
    }

    @Override
    public void stopDemo() {
        getSupportLoaderManager().destroyLoader( 0 );
    }

    @Override
    public String getDemoTitle() {
        return getString( R.string.text_loader_example );
    }

    @Override
    public String getDemoSubtitle() {
        return getString( R.string.text_loader_name );
    }

    @Override
    public String getDemoExplanation() {
        return "loader.html";
    }

    @Override
    public void onCreate( Bundle savedInstanceState ) {
        super.onCreate( savedInstanceState );
    }

    @Override
    public Loader< Void > onCreateLoader( int id, Bundle args ) {
        AsyncTaskLoader< Void > asyncTaskLoader = new AsyncTaskCounter( this );
        asyncTaskLoader.forceLoad();
        return asyncTaskLoader;
    }

    @Override
    public void onLoadFinished( Loader< Void > arg0, Void arg1 ) {
        progressBar.setProgress( MAX_COUNT );
        Log.d( getClass().getSimpleName(), "Loader finished" );
    }

    @Override
    public void onLoaderReset( Loader< Void > arg0 ) {
        progressBar.setProgress( 0 );
        Log.d( getClass().getSimpleName(), "Loader reset" );
    }

    static class AsyncTaskCounter extends AsyncTaskLoader< Void > {

        AsyncTaskCounter( LoaderDemoActivity activity ) {
            super( activity );
        }

        private static final int SLEEP_TIME = 200;

        @Override
        public Void loadInBackground() {
            for ( int progress = 0; progress < MAX_COUNT && !isReset(); progress++ ) {
                try {
                    Thread.sleep( SLEEP_TIME );
                } catch ( InterruptedException e ) {
                    e.printStackTrace();
                }
                Log.d( getClass().getSimpleName(), "Progress value is " + progress );
                Log.d( getClass().getSimpleName(), "getActivity is " + getContext() );
                Log.d( getClass().getSimpleName(), "this is " + this );

            }
            return null;
        }

    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy