通过多活动应用程序的流程,将Google+ api客户端生命周期捆绑在一起的好方法/推荐方法是什么?使活动依赖于onConnected api客户端方法来触发其功能,将其用作一次性"激活"的东西,或者可能完全不同的东西?
我目前正在努力了解如何在我的Android应用中正确使用Google+登录,该应用包含多项活动.
在第一阶段,我们的想法是使用G +登录来验证用户,并能够收到她的电子邮件,发送通知和类似的东西.最终我计划推出其他Google功能,例如地图或其他Google Play服务,所以我认为已经实施它很有用.
但是,我的应用程序没有按预期运行,我已经将问题缩小到这样一个事实,即当存在多个活动时,我还没有理解应用程序周期中的G +登录.
实现此auth方法的正确或推荐方法是什么?可能有一种形式可以指导我朝着正确的方向发展吗?
例如,我发现了一个非常简单的api客户端生命周期图,但这与app流程有什么关系?
最初我有一个登录活动,我在其中放入登录按钮.按照Google的指南,我可以登录,当调用onConnected方法时,我启动Home Activity(有点像应用程序的仪表板或主屏幕).
这有点工作.例如,为每个活动处理onStart和onStop的好方法是什么?我是否应该每次为每项活动重新连接并重新验证api客户端?因此,使用BaseActivity实现所有这些可能是一个好主意.
另一个问题是,我应该使用相同的api客户端对象并以某种方式传递它,或者可能将它存储在Base Activity类中?或者我应该每次创建和初始化一个新的api客户端对象?
如何使用Login Activity对G +进行身份验证,然后只需获取电子邮件并将其存储在本地数据库中,并将用户标记为"已验证"或"活动"等.这样可以防止我每次关闭应用程序或暂停连接时都必须重新进行身份验证,甚至可以节省一些电量.
该应用程序实际上并没有使用G +发布或任何其他类似的功能.理想情况下,它应该可以脱机工作,只需要连接初始身份验证或其他一次性事物.
非常感谢任何正确方向的建议或指示.
编辑:我已经阅读了我能找到的所有使用Google+的指南和教程,并且每个人都从单一活动的角度来解决这个问题.我认为这是一个普遍存在的问题,它将受益于模式或至少一般的指导方针.
我希望能够在创建GoogleApiClient obj(主要活动)之外的其他活动中更新我的排行榜得分.
做这个的最好方式是什么?
使obj可以成为正确的方式吗?如果是这样,如果该类是库的一部分,你怎么能这样做.
你能把obj变成静态吗?这样安全吗?
关于如何实现这一目标的任何建议都会很棒.
我在项目中遇到了问题.我想使用"Google API"登录我的LoginActivity.并从另一个Activity(名为WelcomeActivity)注销
LoginActivity :(代码在这里)
public class LoginActivity extends AppCompatActivity implements
GoogleApiClient.OnConnectionFailedListener,
View.OnClickListener {
// Configuration of Google API - Step 1/3
private static final String TAG = "LoginActivity";
private static final int RC_SIGN_IN = 9001;
public static GoogleApiClient mGoogleApiClient;
private ProgressDialog mProgressDialog;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GoogleAPI();
}
public void GoogleAPI(){
// Button listeners
findViewById(R.id.sign_in_button).setOnClickListener(this);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this …Run Code Online (Sandbox Code Playgroud)