【发布时间】:2012-10-06 23:38:51
【问题描述】:
是否可以通过 Intent 将 Android Account 对象从一个活动传递到另一个活动?如果是这样,怎么做?这是一种好的编程习惯吗?
【问题讨论】:
标签: android android-intent account
是否可以通过 Intent 将 Android Account 对象从一个活动传递到另一个活动?如果是这样,怎么做?这是一种好的编程习惯吗?
【问题讨论】:
标签: android android-intent account
如果您的意思是android.accounts.Account,那么“是”,因为它实现了Parcelable,您可以使用Intent 的putExtra(String name, Parcelable value) 方法将它作为Intent 的额外传递。
这是否是一种好的编程习惯……这完全取决于你为什么要这样做,以及收到它的Activity 会用它做什么。
【讨论】:
您可以通过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();
【讨论】:
您能否提供一个代码示例,并稍微解释一下您使用此传递的具体目的是什么?
您可能希望优化应用程序的流程,以便直接处理帐户信息,并在需要时创建帐户对象。
【讨论】: