据我所知,onRetainNonConfigurationInstance是一个冗余回调.如果我的活动有非常昂贵的初始化,我最好使用onSaveInstanceState.保存的实例比非配置实例包含更多情况.使用一个API与另一个API有什么指导原则吗?谢谢.
我习惯使用适配器在android中构建列表.如果我需要一些长期获取的数据,我使用asynctask或简单的runnable来更新适配器所依赖的数据结构,并在适配器上调用notifyDataChanged.
虽然它并不简单,但我终于发现这是一个简单的模型,它允许逻辑表示(在asynctask中,更新数据结构)和视图(主要用作视图工厂的适配器)的良好分离.
不过,我最近读到了关于HoneyComb中引入的加载器并包含在向后兼容性支持库中,我尝试了它们并发现引入了很多复杂性.它们很难处理并通过装载程序管理器为整个过程添加某种魔力,添加大量代码并且不减少类或协作项目的数量,但我可能错了,并希望听到一些关于装载机.
好的,这是一个开发者论坛,所以这是一个例子.请用装载机做得更好:
package com.sof.test.loader;
import java.util.ArrayList;
import java.util.List;
import android.app.ListActivity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.view.ViewGroup.LayoutParams;
import android.widget.ArrayAdapter;
import android.widget.TextView;
/** The activity. */
public class LoaderTestActivity extends ListActivity {
private DataSourceOrDomainModel dataSourceOrDomainModel = new DataSourceOrDomainModel();
private List<Person> listPerson;
private PersonListAdapter personListAdapter;
private TextView emptyView;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
listPerson = new ArrayList<Person>();
personListAdapter = new PersonListAdapter( listPerson ); …Run Code Online (Sandbox Code Playgroud) android list android-3.0-honeycomb android-4.0-ice-cream-sandwich