0

在我的应用程序中,我希望仅在应用程序启动时将字符串传递给服务器。

我已经使用 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。

那么有什么方法可以让我在 MainActivity 上按下后退按钮时将 ID_SENT 设置为 no?

编辑:

我将 MainActivity 的启动模式设置为 singleTop。所以现在只要我从另一个活动中按下主页按钮,活动就会恢复。并且字符串不是每次都发送,因为 MainActivity 只是恢复。

4

1 回答 1

1

那么有什么方法可以让我在 MainActivity 上按下后退按钮时将 ID_SENT 设置为 no?

是的,

@Override
public void onBackPressed()
{
    // do your save logic here
}

或者你可以override onDestroy(),这可能会更安全,以防 Android 破坏Activity回收内存

于 2013-03-24T03:13:09.300 回答