网站设计作用,企业网页代码,工信部网站用户名,个人证书查询网全国联网我正在创建一个需要登录的应用程序。 我创建了主要和登录活动。在主要活动onCreate方法中我添加了以下条件#xff1a;public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);...loadSettings();if(strSession…我正在创建一个需要登录的应用程序。 我创建了主要和登录活动。在主要活动onCreate方法中我添加了以下条件public void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.main);...loadSettings();if(strSessionString null){login();}...}登录表单终止时执行的onActivityResult方法如下所示Overridepublic void onActivityResult(int requestCode,int resultCode,Intent data){super.onActivityResult(requestCode, resultCode, data);switch(requestCode){case(SHOW_SUBACTICITY_LOGIN):{if(resultCode Activity.RESULT_OK){strSessionString data.getStringExtra(Login.SESSIONSTRING);connectionAvailable true;strUsername data.getStringExtra(Login.USERNAME);}}}问题是登录表单有时会出现两次( login()方法被调用两次)当手机键盘滑动时再次出现登录表单我猜问题是变量strSessionString 。有没有人知道如何设置变量global以避免在用户已经成功验证后出现登录表单#1楼就像上面讨论的那样OS可以在没有任何通知的情况下杀死APPLICATION(没有onDestroy事件)所以没有办法保存这些全局变量。SharedPreferences可能是一个解决方案除了你有COMPLEX STRUCTURED变量(在我的例子中我有整数数组来存储用户已经处理过的ID)。 SharedPreferences的问题在于每次需要值时都很难存储和检索这些结构。在我的情况下我有一个后台服务所以我可以将这些变量移动到那里因为服务有onDestroy事件我可以轻松保存这些值。#2楼您可以使用IntentsSqlite或共享首选项。 对于媒体存储如文档照片和视频您可以改为创建新文件。#3楼我找不到如何指定应用程序标签但经过大量的谷歌搜索后从清单文件docs中可以看出除了应用程序节中的默认图标和标签外还使用了androidname。androidname为应用程序实现的Application子类的完全限定名称。 启动应用程序进程时将在任何应用程序的组件之前实例化此类。子类是可选的; 大多数应用程序不需要一个。 在没有子类的情况下Android使用基本Application类的实例。#4楼class GlobaleVariableDemo extends Application {private String myGlobalState;public String getGlobalState(){return myGlobalState;}public void setGlobalState(String s){myGlobalState s;}}class Demo extends Activity {Overridepublic void onCreate(Bundle b){...GlobaleVariableDemo appState ((GlobaleVariableDemo)getApplicationContext());String state appState.getGlobalState();...}}#5楼在恢复之前调用活动结果。 因此将登录检查移至恢复状态一旦secomd活动返回肯定结果您的第二次登录就会被阻止。 每次都会调用简历因此不必担心第一次没有调用它。