0

是否可以通过 Intent 将 Android Account 对象从一个活动传递到另一个活动?如果是这样,怎么做?这是良好的编程习惯吗?

4

3 回答 3

3

如果你的意思是android.accounts.Account“是”,因为它实现了,Parcelable你可以Intent使用putExtra(String name, Parcelable value).Intent

无论它是否是良好的编程实践......这完全取决于您为什么要这样做以及Activity收到它的人会用它做什么。

于 2012-10-06T23:53:27.437 回答
2

您可以通过Intent将帐户发送到其他活动

如果用户已经登录,首先获取帐户

GoogleSignInAccount account;
account = GoogleSignIn.getLastSignedInAccount(this);

然后在 Intent 中将帐户作为 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();
于 2017-11-17T07:27:33.153 回答
0

您能否提供一个代码示例,并稍微解释一下您使用此传递的具体目的是什么?

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

于 2012-10-06T23:44:48.400 回答