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;
/ * f r o m w w w . j a v a 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