Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 在我的应用程序中的活动之间传递数据_Android_Session_Android Activity - Fatal编程技术网

Android 在我的应用程序中的活动之间传递数据

Android 在我的应用程序中的活动之间传递数据,android,session,android-activity,Android,Session,Android Activity,我有一个电子商务应用程序,每个活动都会有一个注销按钮 我认为对于注销,我将传递登录用户的会话id以进行注销。但我不知道如何使会话id在所有活动中保持活动状态。谁能指引我。提前感谢。在每个活动上使用不同的注销按钮是一种糟糕的设计实践。 此外,会话id应该是一个全局变量。您可以通过两种方式执行。 首先是共享首选项:当用户登录时,在共享首选项中设置会话id,并在每个活动中检查其值。如果设置正确,则允许用户进一步处理,否则自动注销。若用户单击“注销”按钮,则取消设置共享首选项值并将用户重定向到登录屏幕

我有一个电子商务应用程序,每个活动都会有一个注销按钮


我认为对于注销,我将传递登录用户的会话id以进行注销。但我不知道如何使会话id在所有活动中保持活动状态。谁能指引我。提前感谢。

在每个活动上使用不同的注销按钮是一种糟糕的设计实践。 此外,会话id应该是一个全局变量。

您可以通过两种方式执行。
首先是共享首选项:当用户登录时,在共享首选项中设置会话id,并在每个活动中检查其值。如果设置正确,则允许用户进一步处理,否则自动注销。若用户单击“注销”按钮,则取消设置共享首选项值并将用户重定向到登录屏幕


第二种方法是使用全局数据类,其中包含会话。当用户登录时,在数据类中设置会话id,并在使用“转到一个活动到另一个活动并与全局类值匹配”时,使用intent EXTRAL传递会话id值,如果都正常,则允许用户执行所有任务。当用户单击数据类中未设置的注销会话id时。

您可以通过创建SignOutActivity类并使用intent将会话id传递给SingOutActivity类来实现这一点

Intent intent = new Intent(getBaseContext(), SignoutActivity.class);
intent.putExtra("SESSION_ID", sessionId);
startActivity(intent);
在SignOutActivity中访问意图,在此活动中,您可以从应用程序注销用户

String s = getIntent().getStringExtra("EXTRA_SESSION_ID");