onRetainNonConfigurationInstance getLastNonConfigurationInstance / .
:
bmp = getLastNonConfigurationInstance();
if(bmp!=null){ iv.setImageBitmap(bmp); }
else { }
u :
@Override
public Object onRetainNonConfigurationInstance (){
return bmp;
}
"" .
onSaveInstanceState, , , :
public class SomethingSomething extends Activity{
String name="";
int page=0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if(savedInstanceState!=null){
name = savedInstanceState.getString("name");
page = savedInstanceState.getInt("page");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putString("name", name);
outState.putInt("page", page);
}
}
, , , , Android Bundle Android , , , Parcelable ( ). , Bitmaps, Parcelable, , Bitmap Bitmap .
, setRetainInstance ( , \sdk\extras\android\support\samples\Support4Demos\src\com\example\android\supportv4\app\FragmentRetainInstanceSupport.Java.
, .
public class FragRetained extends Fragment{
public static final String TAG = "TAG.FragRetained";
private Bitmap bitmap;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
public Bitmap getBitmap() { return bitmap; }
public void setBitmap(Bitmap bmp) { bitmap = bmp; }
}
public class MyActivity extends Activity{
private FragRetained myFragRetained;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
img = (ImageView)findViewById(R.id.byImgV);
myFragRetained = getFragmentManger.findFragmentByTag(FragRetained.TAG);
if(myFragRetained == null){
myFragRetained = new FragRetained ();
}else{
Bitmap b = myFragRetained.getBitmap();
if(b==null){
}else{
img.setImageBitmap(b);
}
}
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
bmp = (Bitmap)extras.get("data");
iv.setImageBitmap(bmp);
myFragRetained.setBitmap(bmp);
}
}
}
android:configChanges="orientation" , , , , ,
. . , " " . , - .