我可以通过Intent将帐户转到另一个活动吗?

时间:2012-10-06 23:38:51

标签: android android-intent account

是否可以通过Intent将Android帐户对象从一个活动传递到另一个活动?如果是这样,怎么样?这是一个很好的编程实践吗?

3 个答案:

答案 0 :(得分:3)

如果您的意思是android.accounts.Account,那么'是',因为它实现了Parcelable,您可以使用Intent putExtra(String name, Parcelable value)方法将其作为额外的Intent传递1}}。

这是否是良好的编程习惯......这完全取决于你想要这样做的原因以及接收它的Activity将用它做什么。

答案 1 :(得分:2)

您可以通过意图

将帐户发送到其他活动

如果用户已登录

,请先获取帐户
GoogleSignInAccount account;
account = GoogleSignIn.getLastSignedInAccount(this);

然后在意图

中将该帐户作为Extra传递
Intent intent = new Intent(this,ReceiverActivity.class);
            intent.putExtra("ACCOUNT",account);
            startActivity(intent);

在ReceiverActivity中

GoogleSignInAccount account =getIntent().getParcelableExtra("ACCOUNT");

然后您可以从用户的个人资料中获取其他详细信息,例如

String personName = account.getDisplayName();
            String personGivenName = account.getGivenName();
            String personFamilyName = account.getFamilyName();
            String personEmail = account.getEmail();
            String personId = account.getId();
            Uri personPhoto = account.getPhotoUrl();

答案 2 :(得分:0)

您能否提供一个代码示例,并解释一下您使用此传递的确切内容?

您可能希望优化应用程序的流程,以便直接处理帐户信息,并在需要时创建帐户对象。