Android Open Source - Aviary-Android-SDK Thread Utils






From Project

Back to project page Aviary-Android-SDK.

License

The source code is released under:

AVIARY API TERMS OF USE Full Legal Agreement The following terms and conditions and the terms and conditions at http://www.aviary.com/terms (collectively, the ?Terms??) govern your use of any and ...

If you think the Android project Aviary-Android-SDK listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.aviary.android.feather.utils;
/*from   www .java 2 s. c o m*/
import android.app.ProgressDialog;
import android.os.Handler;

import com.aviary.android.feather.library.MonitoredActivity;

/**
 * Some thread related utilities.
 * 
 * @author alessandro
 */
public class ThreadUtils {

  /**
   * Start background job.
   * 
   * @param activity
   *            the activity
   * @param title
   *            the title
   * @param message
   *            the message
   * @param job
   *            the job
   * @param handler
   *            the handler
   */
  public static void startBackgroundJob( MonitoredActivity activity, String title, String message, Runnable job, Handler handler ) {
    ProgressDialog dialog = ProgressDialog.show( activity, title, message, true, false );
    new Thread( new BackgroundJob( activity, job, dialog, handler ) ).start();
  }

  /**
   * The Class BackgroundJob.
   */
  private static class BackgroundJob extends MonitoredActivity.LifeCycleAdapter implements Runnable {

    private final MonitoredActivity mActivity;

    private final ProgressDialog mDialog;

    private final Runnable mJob;

    private final Handler mHandler;

    private final Runnable mCleanupRunner = new Runnable() {

      @Override
      public void run() {
        mActivity.removeLifeCycleListener( BackgroundJob.this );
        if ( mDialog.getWindow() != null ) mDialog.dismiss();
      }
    };

    /**
     * Instantiates a new background job.
     * 
     * @param activity
     *            the activity
     * @param job
     *            the job
     * @param dialog
     *            the dialog
     * @param handler
     *            the handler
     */
    public BackgroundJob ( MonitoredActivity activity, Runnable job, ProgressDialog dialog, Handler handler ) {
      mActivity = activity;
      mDialog = dialog;
      mJob = job;
      mActivity.addLifeCycleListener( this );
      mHandler = handler;
    }

    /*
     * (non-Javadoc)
     * 
     * @see java.lang.Runnable#run()
     */
    @Override
    public void run() {
      try {
        mJob.run();
      } finally {
        mHandler.post( mCleanupRunner );
      }
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * com.aviary.android.feather.MonitoredActivity.LifeCycleAdapter#onActivityDestroyed
     * (com.aviary.android.feather.MonitoredActivity
     * )
     */
    @Override
    public void onActivityDestroyed( MonitoredActivity activity ) {
      mCleanupRunner.run();
      mHandler.removeCallbacks( mCleanupRunner );
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * com.aviary.android.feather.MonitoredActivity.LifeCycleAdapter#onActivityStopped(
     * com.aviary.android.feather.MonitoredActivity
     * )
     */
    @Override
    public void onActivityStopped( MonitoredActivity activity ) {
      mDialog.hide();
    }

    /*
     * (non-Javadoc)
     * 
     * @see
     * com.aviary.android.feather.MonitoredActivity.LifeCycleAdapter#onActivityStarted(
     * com.aviary.android.feather.MonitoredActivity
     * )
     */
    @Override
    public void onActivityStarted( MonitoredActivity activity ) {
      mDialog.show();
    }
  }

}




Java Source Code List

com.aviary.android.feather.AlertActivity.java
com.aviary.android.feather.AviaryMainController.java
com.aviary.android.feather.FeatherActivity.java
com.aviary.android.feather.async_tasks.AsyncImageManager.java
com.aviary.android.feather.async_tasks.DownloadImageAsyncTask.java
com.aviary.android.feather.async_tasks.ExifTask.java
com.aviary.android.feather.effects.AbstractContentPanel.java
com.aviary.android.feather.effects.AbstractOptionPanel.java
com.aviary.android.feather.effects.AbstractPanelLoaderService.java
com.aviary.android.feather.effects.AbstractPanel.java
com.aviary.android.feather.effects.AdjustEffectPanel.java
com.aviary.android.feather.effects.BordersPanel.java
com.aviary.android.feather.effects.ColorSplashPanel.java
com.aviary.android.feather.effects.CropPanel.java
com.aviary.android.feather.effects.DelayedSpotDrawPanel.java
com.aviary.android.feather.effects.DrawingPanel.java
com.aviary.android.feather.effects.EffectsPanel.java
com.aviary.android.feather.effects.EnhanceEffectPanel.java
com.aviary.android.feather.effects.MemePanel.java
com.aviary.android.feather.effects.NativeEffectRangePanel.java
com.aviary.android.feather.effects.SimpleStatusMachine.java
com.aviary.android.feather.effects.SliderEffectPanel.java
com.aviary.android.feather.effects.StickersPanel.java
com.aviary.android.feather.effects.TextPanel.java
com.aviary.android.feather.effects.TiltShiftPanel.java
com.aviary.android.feather.graphics.CdsPreviewTransformer.java
com.aviary.android.feather.graphics.GalleryBottomIndicatorDrawable.java
com.aviary.android.feather.graphics.GalleryTopIndicatorDrawable.java
com.aviary.android.feather.graphics.GlowBitmapDrawable.java
com.aviary.android.feather.graphics.GlowDrawable.java
com.aviary.android.feather.graphics.PluginDividerDrawable.java
com.aviary.android.feather.graphics.PreviewFillColorDrawable.java
com.aviary.android.feather.graphics.PreviewSpotDrawable.java
com.aviary.android.feather.graphics.RepeatableHorizontalDrawable.java
com.aviary.android.feather.opengl.AviaryGLSurfaceView.java
com.aviary.android.feather.utils.PackIconCallable.java
com.aviary.android.feather.utils.SimpleBitmapCache.java
com.aviary.android.feather.utils.ThreadUtils.java
com.aviary.android.feather.utils.TypefaceUtils.java
com.aviary.android.feather.utils.UIUtils.java
com.aviary.android.feather.widget.AdjustImageView.java
com.aviary.android.feather.widget.AviaryAbsSpinner.java
com.aviary.android.feather.widget.AviaryAdapterView.java
com.aviary.android.feather.widget.AviaryBadgeToolLayout.java
com.aviary.android.feather.widget.AviaryBottomBarViewFlipper.java
com.aviary.android.feather.widget.AviaryButton.java
com.aviary.android.feather.widget.AviaryEdgeEffect.java
com.aviary.android.feather.widget.AviaryGalleryTopIndicatorView.java
com.aviary.android.feather.widget.AviaryGallery.java
com.aviary.android.feather.widget.AviaryHighlightImageButton.java
com.aviary.android.feather.widget.AviaryImageRestoreSwitcher.java
com.aviary.android.feather.widget.AviaryImageSwitcher.java
com.aviary.android.feather.widget.AviaryNavBarViewFlipper.java
com.aviary.android.feather.widget.AviarySeekBar.java
com.aviary.android.feather.widget.AviaryTextView.java
com.aviary.android.feather.widget.AviaryToast.java
com.aviary.android.feather.widget.AviaryToggleButton.java
com.aviary.android.feather.widget.AviaryWheel.java
com.aviary.android.feather.widget.AviaryWorkspaceIndicator.java
com.aviary.android.feather.widget.AviaryWorkspace.java
com.aviary.android.feather.widget.CellLayout.java
com.aviary.android.feather.widget.CropImageView.java
com.aviary.android.feather.widget.DrawableHighlightView.java
com.aviary.android.feather.widget.EffectThumbLayout.java
com.aviary.android.feather.widget.HighlightView.java
com.aviary.android.feather.widget.IAPBuyButton.java
com.aviary.android.feather.widget.IAPDialogDetail.java
com.aviary.android.feather.widget.IAPDialogList.java
com.aviary.android.feather.widget.IAPDialogMain.java
com.aviary.android.feather.widget.ImageViewDrawableOverlay.java
com.aviary.android.feather.widget.ImageViewSpotDraw.java
com.aviary.android.feather.widget.ImageViewTiltiShiftTouch.java
com.aviary.android.feather.widget.ImageViewTouchAndDraw.java
com.aviary.android.feather.widget.PointCloud.java
com.aviary.android.feather.widget.ScrollerRunnable.java
com.aviary.android.feather.widget.VibrationHelper.java
com.aviary.android.feather.widget.VibrationWidget.java