Я пытаюсь сохранить некоторые значения в методе onSaveInstanceState (Bundle) моего activty следуя примеру здесь: Saving Android Activity state using Save Instance StateAndroid обыкновение сохранять текущее состояние деятельности
Но это не кажется, чтобы загрузить его из OnCreate(). объект bundle всегда имеет значение null, но всякий раз, когда я вызываю другое действие, он действительно переходит в метод onSaveInstanceState, чтобы сохранить мои значения.
Теперь я прочитал этот вопрос, который я только что опубликовал, и кто-то заметил, как они не могут заставить его работать в эмуляторе? к сожалению, это все, над чем я работаю. На эмуляторе и не можете проверить приложение на устройстве, поскольку у меня нет устройства, доступного мне прямо сейчас. И веб-службы, с которыми я взаимодействую, находятся в локальной виртуальной машине на моей рабочей машине, к которой в данный момент невозможно получить доступ удаленно.
Мой вопрос: верно ли, что сохраненные пакеты не работают на эмуляторах? Я также заметил, что, когда я увольняю или воспитываю новое действие, действие вызывает onPause, а затем onStop. когда я возвращаю ту же самую активность, она идет прямо в onCreate?
сейчас в соответствии с документами http://developer.android.com/guide/topics/fundamentals.html#actlife Это верно в отношении того, что показывает диаграмма жизненного цикла, но если вы прочитаете ниже эту диаграмму в разделе onStop(), то говорится, что следующий шаг, по которому он переходит, - это либо onRestart(), либо onDestroy()? не упоминается onCreate? Введите в документах?
В любом случае вот мой onSaveInstanceState() и OnCreate() как в одной и той же деятельности:
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
Log.d(TAG, "SAVING OauthManager in onSaveInstanceState");
// TODO: if works, we need to save the my network list HashMap as well
// so we dont make a call to the platform everytime we refresh this
// screen
// savedInstanceState.putSerializable("oauthManager", mOathManager);
// Log.d(TAG, "finished saving");
// super.onSaveInstanceState(savedInstanceState);
// Log.d(TAG, "super.onSaveInstanceState(savedInstanceState)");
savedInstanceState.putString(USER_CONSUMER_ID,
mSavedUserConsumerTokenId);
savedInstanceState.putString(USER_CONSUMER_SECRET,
mSavedUserConsumerSecret);
savedInstanceState.putString(URL_REQUEST_TOKEN, mSavedRequestTokenUrl);
savedInstanceState.putString(URL_ACCESS_TOKEN, mSavedAccessTokenUrl);
savedInstanceState.putString(URL_AUTHORIZE_TOKEN,
mSavedAuthorizeTokenUrl);
super.onSaveInstanceState(savedInstanceState);
}
Мои OnCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
Log.d(TAG, " ");
Log.d(TAG, "onCreate");
Log.d(TAG, "///////////////////////////////////////");
Log.d(TAG, "///////////////////////////////////////");
super.onCreate(savedInstanceState);
Log.d(TAG, "super.onCreate(savedInstanceState);");
setContentView(R.layout.network_list);
mContext = getApplicationContext();
mIntent = getIntent();
mGoogleButton = (Button) findViewById(R.id.googleAddOrRemoveButton);
mFacebookButton = (Button) findViewById(R.id.facebookAddOrRemoveButton);
mLinkedInkButton = (Button) findViewById(R.id.linkedInAddOrRemoveButton);
mPopEmailButton = (Button) findViewById(R.id.popEmailAddOrRemoveButton);
if (savedInstanceState != null) {
Log.d(TAG, "inside if (savedInstanceState != null) {");
Log.d(TAG, "savedInstanceState != null");
// mOathManager = (OAuthManager) savedInstanceState
// .getSerializable("oauthManager");
mSavedUserConsumerTokenId = savedInstanceState
.getString(USER_CONSUMER_ID);
mSavedUserConsumerSecret = savedInstanceState
.getString(USER_CONSUMER_SECRET);
mSavedRequestTokenUrl = savedInstanceState
.getString(URL_REQUEST_TOKEN);
mSavedAccessTokenUrl = savedInstanceState
.getString(URL_ACCESS_TOKEN);
mSavedAuthorizeTokenUrl = savedInstanceState
.getString(URL_AUTHORIZE_TOKEN);
mOathManager = new OAuthManager(mContext, getIntent(),
mSavedUserConsumerTokenId, mSavedUserConsumerSecret,
mSavedRequestTokenUrl, mSavedAccessTokenUrl,
mSavedAuthorizeTokenUrl, CALLBACK_URI);
mOathManager.requestUserRequestToken();
} else{
Log.d(TAG, "savedInstanceState is null and loading the list again");
GetNetworkListTask getNetworkListTask = new GetNetworkListTask();
getNetworkListTask.execute();
}
}
Привет, Могли ли вы решить эту проблему. Я столкнулся с этим на телефонном телефоне Motorola (эмулятор и несколько других телефонов, которые я пытался, похоже, не имеют этой проблемы с сохранением экземпляра InstanceState, но не восстановлены) –