是否可以通过Intent将Android帐户对象从一个活动传递到另一个活动?如果是这样,怎么样?这是一个很好的编程实践吗?
答案 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)
您能否提供一个代码示例,并解释一下您使用此传递的确切内容?
您可能希望优化应用程序的流程,以便直接处理帐户信息,并在需要时创建帐户对象。