public class XPBN extends Activity{
private Map _map;
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
final Map data = (Map)getLastNonConfigurationInstance();
if (data == null) {
Toast.makeText(this, "New Map", Toast.LENGTH_SHORT).show();
_map = new Map(this);
} else {
Toast.makeText(this, "Old Map", Toast.LENGTH_SHORT).show();
_map = (Map)data;
}
setContentView(_map);
}
@Override
public Object onRetainNonConfigurationInstance() {
Toast.makeText(this, "Saving Configuration...", Toast.LENGTH_LONG).show();
return _map;
}
}
Я собираюсь предположить, что в названии, которое я дал этой ветке форума, достаточно подробно описана проблема, с которой я сталкиваюсь. Я также отредактировал код, чтобы попытаться сохранить строковый объект и затем восстановить строковый объект с помощью getLastNonConfigurationInstance (), просто чтобы посмотреть, в какой степени я смог заставить его работать для меня, но он все еще, казалось, возвращал ноль. Я не пробовал вызывать его из onStart () или onRestart () или onResume (), но из того, что я прочитал, он обычно вызывается только из onCreate (Bundle) в любом случае. Это меня очень запутало ...: /
Я подумал, что может быть полезно немного узнать о моем объекте класса Map, поэтому вот (некоторые из) код из него:
public class Map extends SurfaceView implements SurfaceHolder.Callback{
private MapThread _mapThread;
private int _terrain[][];
private ArrayList<Player> playerList;
private Bitmap _blueback;
private Bitmap _bluefront;
private Bitmap _blueleft;
private Bitmap _blueright;
private Bitmap _greenback;
private Bitmap _greenfront;
private Bitmap _greenleft;
private Bitmap _greenright;
private Bitmap _redfront;
private Bitmap _redback;
private Bitmap _redleft;
private Bitmap _redright;
private Bitmap _robot1;
private Bitmap _forest;
private Bitmap _grass;
private Bitmap _mountain;
private Bitmap _tree;
@SuppressWarnings("unused")
private boolean _mapLoaded = false;
private int _viewX = 0;
private int _viewY = 0;
Map(Context context){
super(context);
getHolder().addCallback(this);
_mapThread = new MapThread(this);
setFocusable(true);
_terrain = new int[100][100];
playerList = new ArrayList<Player>();
addPlayer(0, 0, 0);
_blueback = BitmapFactory.decodeResource(context.getResources(), R.drawable.blueback);
_bluefront = BitmapFactory.decodeResource(context.getResources(), R.drawable.bluefront);
_blueleft = BitmapFactory.decodeResource(context.getResources(), R.drawable.blueleft);
_blueright = BitmapFactory.decodeResource(context.getResources(), R.drawable.blueright);
_greenback = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenback);
_greenfront = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenfront);
_greenleft = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenleft);
_greenright = BitmapFactory.decodeResource(context.getResources(), R.drawable.greenright);
_redback = BitmapFactory.decodeResource(context.getResources(), R.drawable.redback);
_redfront = BitmapFactory.decodeResource(context.getResources(), R.drawable.redfront);
_redleft = BitmapFactory.decodeResource(context.getResources(), R.drawable.redleft);
_redright = BitmapFactory.decodeResource(context.getResources(), R.drawable.redright);
_robot1 = BitmapFactory.decodeResource(context.getResources(), R.drawable.robot1);
_forest = BitmapFactory.decodeResource(context.getResources(), R.drawable.forest);
_grass = BitmapFactory.decodeResource(context.getResources(), R.drawable.grass);
_mountain = BitmapFactory.decodeResource(context.getResources(), R.drawable.mountain);
_tree = BitmapFactory.decodeResource(context.getResources(), R.drawable.tree);
TouchScreenHandler handler = new TouchScreenHandler(); // This includes 2 other nested-class threads
this.setOnTouchListener(handler);
}
Возможно, в сложности объекта, возвращаемого onRetainNonConfigurationInstance (), кроется какая-то сложность, которая может способствовать моим проблемам?
Или, наконец, есть что-то (например, свойство Activity или Application) в моем файле Manifest.xml, что является проблемой?
Если потребуется какая-либо дополнительная информация, пожалуйста, дайте мне знать, так как я буду часто проверять этот пост до тех пор, пока не смогу преодолеть эту маленькую неровность на дороге.
PS: у меня есть проблема как с ADB, так и с моим устройством.
PSS: самое главное, большое СПАСИБО этому сообществу за помощь и поддержку, поскольку это очень ценится! : D