У меня есть 3 вопроса:Редактировать данные в sharedpreferences
Во-первых, я пишу приложения для Android. Но со мной возникает странная проблема. В начале приложения, я проверяю, если переменная NUMBER_PROVIDED является «НЕТ» (значение по умолчанию), я открою другую деятельность по
intent = new Intent(this, InputMobileScreen.class);
startActivityForResult(intent, REQUEST_MOBILE);
После этого мне нужно предоставить свой номер телефона, чтобы обработать. Затем я обновлю имя переменной NUMBER_PROVIDED с «НЕТ» (значение по умолчанию) на «ДА». Я сохранил это значение в статической переменной и также напишу его в SharedPreferences.
Вот мой код для обновления глобальной статической переменной:
MainActivity.NUMBER_PROVIDED = "YES";
и значения обновления в SharedPreferences:
Context context = getApplicationContext();
SharedPreferences sharedPref = context.getSharedPreferences(getString(R.string.preference_file_key), Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putString(getString(R.string.NUMBER_PROVIDED), "YES");
editor.commit();setResult(Activity.RESULT_OK);
finish();
После редактирования в SharedPreferences, я называю editor.commit(), setResult () и завершите входную активность, чтобы вернуться к mainactivity. Приложение работает плавно на моих устройствах (ASUS zenphone 5, Android 4.4), но на HTC mini, похоже, что фиксация не удалась? Я не знаю почему? и как сделать activity.finish после совершения() в SharedPreferences тотально полная
Во-вторых, в мое приложение, я должен назвать одну функцию, чтобы получить MAC-адрес WiFi следующим образом:
WifiManager manager = (WifiManager)getSystemService(Context.WIFI_SERVICE);
WifiInfo info = manager.getConnectionInfo();
String macAddress = info.getMacAddress();
if (macAddress == null)
{
macAddress = "00:00:00:00:00:00";
}
return macAddress;
На моих устройствах я получал свой MAC-адрес каждый раз, но на некоторых других устройствах (у меня есть журналы в моем приложении), иногда он не может получить MAC-адрес (возврат «00: 00: 00: 00: 00: 00»)). Как его решить?
В-третьих, когда я нахожусь на входной активности (имена InputAcitity). Я нажимаю кнопку «домой» на главный экран мобильного телефона, после чего я снова нажимаю кнопку запуска приложения для приложения, чтобы вернуться в приложение. Но экран показывает, что я в MainActivity (а не в InputActivity). Это происходит только в некоторых конкретных устройствах, не все, я не знаю, что, хотя я вызвал startActivityForResult из MainActivity, чтобы открыть InputActivity
любое предложение оценено. благодаря
Использование отделки() или context.finish() для закрытия деятельности. –