在我的应用程序中,我希望只在应用程序启动时将字符串传递给服务器。
我使用SharedPreferences来检查字符串是否已发送。
此代码以MainActivity之星运行
pref=getPreferences(MODE_PRIVATE);
Sent=pref.getString("ID_SENT", "");
if(Sent.equals(""))
{
SharedPreferences.Editor editor=pref.edit();
editor.putString("ID_SENT","NO");
editor.commit();
Sent=pref.getString("ID_SENT","");
}
现在,在AsyncTask的onPostExecute中将字符串发送到服务器后,此代码用于将变量ID_SENT设置为YES:
Sent=pref.getString("ID_SENT", "");
if(Sent.equals("NO"))
{
SharedPreferences.Editor editor=pref.edit();
editor.putString("ID_SENT","YES");
editor.commit();
}
现在的问题是,当我关闭应用并再次启动应用时,它不会将字符串发送到服务器,因为它发现ID_SENT设置为YES。
那么有什么方法可以让我在将Main_Sctivity按下后退按钮时将ID_SENT设置为no?
修改
我将MainActivity的启动模式设置为singleTop。因此,每当我从其他活动按下主页按钮时,现在活动将恢复。并且每次都不会发送字符串,因为MainActivity仅会恢复。
答案 0 :(得分:1)
那么有什么方法可以让我在将Main_Sctivity按下后退按钮时将ID_SENT设置为no?
是的,
@Override
public void onBackPressed()
{
// do your save logic here
}
或者您可以override onDestroy()
,如果Android销毁Activity
以回收内存