由于横竖屏切换时Activity会Destroy,又重新创建,导致得重新加载需要的数据。解决这种是在onRestoreNonConfigrationInstance() 方法里保持需要的对象,在横竖屏切换时这个方法会调用,等到Activity重新创建后,通过getLastNonConfigrationInstance()方法取得Object。

 
  
  1. public class Android_testActivity extends Activity {  
  2.     /** Called when the activity is first created. */  
  3.     TextView textView;  
  4.     Drawable drawable;  
  5.     @Override  
  6.     public void onCreate(Bundle savedInstanceState) {  
  7.         super.onCreate(savedInstanceState);  
  8.         setContentView(R.layout.main);  
  9.         textView = (TextView)findViewById(R.id.text);  
  10.         drawable = (Drawable)getLastNonConfigurationInstance();  
  11.         if (drawable == null) {  
  12.             drawable = getResources().getDrawable(R.drawable.icon);  
  13.             Log.e("Android_test", "drawable is null");  
  14.         }  
  15.         textView.setBackgroundDrawable(drawable);  
  16.     }  
  17.     @Override  
  18.     public Object onRetainNonConfigurationInstance() {  
  19.         // TODO Auto-generated method stub  
  20.         return drawable;  
  21.     }  
  22.       
  23.       
  24.       
  25.     public void onDestroy(){  
  26.         super.onDestroy();  
  27.         Log.e("Android_test", "Destroy");  
  28.     }