我开发了一个存储所有私人数据信息的应用程序,因此我开发了密码保护屏幕。
当我打开应用程序时,密码屏幕正常显示但登录后如果我正在编辑任何内容然后我按下主页按钮我有一个问题,应用程序重新打开到没有密码的受保护屏幕。
如何将其发送回onResume上的密码屏幕?
我需要想办法让片段和活动上的主页按钮按下?或者有更好的选择吗?
有人可以帮我解决这个问题吗?
谢谢!
答案 0 :(得分:2)
您的应用程序会被杀死以及所有数据都会发生什么 输入已刷新或删除。
您可以使用SharedPreference
存储可在打开应用程序时再次检索的数据。
我建议您保存输入onPause()
或onDestroy()
的用户名和密码,然后在onCreate()
上重播(如果有的话)。
// MY_PREFS_NAME - a static String variable like:
//public static final String MY_PREFS_NAME = "MyPrefsFile";
SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit();
editor.putString("name", "xyz");
editor.putString("password","abc");
editor.commit();
SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE);
String restoredText = prefs.getString("text", null);
if (restoredText != null) {
String name = prefs.getString("name", "No name defined");//"No name defined" is the default value.
String password= prefs.getString("idName", "No name defined");
}
修改强>
如果您希望在应用程序中首先打开特定活动,则需要使用以下代码在AndroidManifest.xml
中注册:
<activity android:name=".put your started activity name here"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
在此处注册您的密码屏幕,只要您打开应用程序,它就会打开。
如果您不想更改启动应用程序并且只想将其发送到其他活动,我建议您使用intents
。
Intent i = new Intent(Source.java, Destination.class);
startActivity(i);
finish();
答案 1 :(得分:0)
当您调用onPause和onDestroy时,使用该用户名+密码自动注销服务器。然后每次登录时都要检查是否已连接/登录到服务器,如果不是(情况总是这样),则切换到登录活动。希望这有帮助。 :)
答案 2 :(得分:0)
您需要覆盖Android inbuild方法 onSaveInstanceState(Bundle savedInstanceState)。 这更容易,也很有效。