public class MyTask extends AsyncTask<Void, Void, Void> {
private volatile boolean running = true;
private final ProgressDialog progressDialog;
public MyTask(Context ctx) {
progressDialog = gimmeOne(ctx);
progressDialog.setCancelable(true);
progressDialog.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
// actually could set running = false; right here, but I'll
// stick to contract.
cancel(true);
}
});
}
@Override
protected void onPreExecute() {
progressDialog.show();
}
@Override
protected void onCancelled() {
running = false;
}
@Override
protected Void doInBackground(Void... params) {
while (running) {
// does the hard work
}
return null;
}
// ...
}
这两天要用一个对象的传递始终找不到好的方法,后来在传递bitMap时这个对象时有了点启发
可以讲一个类扩展为implement Serializable
interface
//传递:
intent.putExtra("MyClass", obj);
// to retrieve object in second Activity
getIntent().getSerializableExtra("MyClass");
分享到:
相关推荐
尤其是当程序正在进行后台任务(如AsyncTask)或者显示ProgressDialog时,屏幕旋转会触发Activity的生命周期重置,使得原有状态无法保留。本篇文章将深入探讨如何在Android中优雅地处理屏幕旋转,确保AsyncTask和...
在Android应用开发中,`ProgressDialog`是一个非常...通过实践这个Demo,你可以掌握`ProgressDialog`的使用方法,包括创建、设置样式、更新进度以及正确关闭对话框。这对于任何Android开发者来说都是必不可少的技能。
以下是一个简单的示例,展示了如何使用AsyncTask从网络获取网页源代码并在TextView中显示: ```java public class MainActivity extends Activity { private TextView textView; @Override protected void ...
在Android开发中,异步任务(AsyncTask)是一种常见的处理耗时操作的方式,尤其是在用户界面(UI)线程中避免阻塞,确保用户体验流畅。"异步任务下载图片"这个主题,主要涉及到如何利用AsyncTask从网络下载图片,并...
在Activity间传递数据可以通过Intent的putExtra()和getExtra()方法实现,可以传递基本数据类型、Parcelable对象(如Parcelable或Serializable的子类)和Bundle。 ### 4. **处理Back按键** `onBackPressed()`方法...
这里调用了 `DataOper.GetAllPtsFromNet(mDBHelper, pdialog)` 进行实际的下载操作,同时传递了进度对话框对象,以便在下载过程中更新进度。 - `onCancelled()` 当用户取消任务时,执行清理工作。 - `onPostExecute...
理解BroadcastReceiver、Service和线程的使用,以及如何在它们之间安全地传递数据和更新UI,对于构建高性能、用户体验良好的应用程序至关重要。通过实践和不断优化,开发者可以更好地掌握这些技巧,提高应用的质量和...
在`AsyncTaskActivity2`中,我们首先初始化UI元素,包括一个下载按钮(`btnDown`)和一个用于显示图片的`ImageView`(`ivImage`)。我们还创建了一个`ProgressDialog`对象(`dialog`)来显示下载进度。 当用户点击...
7. **Intent和Activity间通信**:在安卓中,Activity是应用的基本单元,Intent用于在Activity之间传递数据和启动新的Activity。在学生管理系统中,可能需要通过Intent在不同的Activity之间跳转,比如从主界面跳转到...
不过,由于Android 5.0后推荐使用ProgressBar替代ProgressDialog,因此在新的项目中,你应该优先考虑使用 ProgressBar 配合 AsyncTask 或者其他异步处理机制来显示进度。 除了默认的Dialog样式,你还可以自定义...
可以使用`AsyncTask`的`doInBackground()`方法来执行下载任务,然后在`publishProgress()`中传递进度信息: ```java new AsyncTask, Integer, Void>() { @Override protected Void doInBackground(Void... voids)...
5. **Android.App.ProgressDialog**: 当需要在后台执行耗时操作并希望向用户显示进度时,可以使用ProgressDialog。同样,需要确保在UI线程中显示和取消这个对话框。 6. **Java.Util.concurrent**: Java的并发库提供...
2. **ProgressDialog**:在Android开发中,ProgressDialog已经过时,推荐使用AlertDialog配合Progress Bar或者使用自定义的进度视图。它可以显示一个标题,一个可选的消息,并包含一个取消按钮。用户可以通过点击...
8. **Lifecycle-Aware Components**: 使用ViewModel和LiveData,开发者可以确保即使在屏幕旋转或其他配置改变时,进度信息也能正确地在Activity或Fragment之间保持。 9. **UI更新的最佳实践**: 在更新进度条时,...
在这个例子中,可以考虑使用`AsyncTask`或者其他异步处理方式,以确保用户界面的流畅性。 综上所述,Android基于GeolocationAPI的基站定位涉及到网络通信、JSON解析、UI更新以及权限管理等多个方面,需要开发者对...
在Service中,通过`bindService()`与Activity建立连接,然后通过Binder将下载进度传递到Activity,更新ProgressDialog的进度值。 4. **Notification**:为了在通知栏显示下载状态,我们需要使用`...
Android中可以使用Gson或Jackson库来解析JSON,将数据转换为Java对象。 4. **ProgressDialog/ProgressBar**:"loading登录效果"通常指的是在用户等待登录结果时显示的进度条或者加载对话框。Android提供了...
- **接口回调**: 在Activity和下载服务之间,可能通过接口回调传递下载进度和状态信息。 7. **服务(Service)** - **IntentService**: 为了在后台持续运行下载任务,项目可能使用了IntentService,它会在完成所有...
综上所述,这份资料涵盖了Android开发中的一些核心技术和实践,包括使用Afinal简化数据库和网络操作,利用多线程下载提高用户体验,以及Gson库在数据交换中的作用。通过学习和应用这些知识,开发者可以构建更高效、...