protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Environment.setCanLogin(true);
mContext = this;
PluginWrapper.init(this);
PluginWrapper.setGLSurfaceView(Cocos2dxGLSurfaceView.getInstance());
mAm = new IAPAm(mContext);
mAmPayer = new AmPayer(mContext);
mGCommplatform = GCommplatform.getInstance(mContext);
}
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
<span style="font-family: Arial, Helvetica, sans-serif;">//做切换用户之前要提示玩家游戏要重新启动</span>
//这里要传入intent,开始的时候没有传这个参数,做重启游戏intent被无故消毁,游戏无法成功重启
dialog(intent);
}
//这里是提示框
protected void dialog(Intent intent) {
AlertDialog.Builder restartDialog = new Builder(mContext);
restartDialog.setTitle("提示");
restartDialog.setMessage("切换需要重启游戏");
restartDialog.setPositiveButton("重启", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int arg1) {
// TODO Auto-generated method stub
dialog.dismiss();
//点击确定以后会重启游戏
restart();
}
});
restartDialog.show();
}
@Override
protected void onDestroy() {
super.onDestroy();
}
// 重启游戏
public void restart() {
Intent i = mContext.getPackageManager().getLaunchIntentForPackage(
mContext.getPackageName());
PendingIntent intent = PendingIntent.getActivity(
mContext.getBaseContext(), 0, i, i.getFlags());
AlarmManager manager = (AlarmManager) mContext
.getSystemService(Context.ALARM_SERVICE);
manager.cancel(intent);
manager.set(AlarmManager.RTC, System.currentTimeMillis() + 100, intent);
System.exit(2);
}
第一个问题是在接入SDK以后,通过SDK悬浮窗进入平台个人中心,点击切换帐号时无法自动切换的问题。首先这里遇着第一个关键字:onNewIntent
首先要在 AndroidManifest.xml 中确认一下activity加载模式android:launchMode="singleTask",这里必须是singleTask,(关于四种加载模式网上都有介绍,建议大家去网上仔细查阅,我在这里就不做介绍了,避免误导大家),当我们在SDK点击了切换用户时,首先会回到onNewIntent,在这里我们加入相对的操作即可.