【发布时间】:2013-12-23 06:33:28
【问题描述】:
请帮助我。我需要从 GCM 接收器获取活动结果,代码如下
在 MainActivity.class 上
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
//PARSE RESULT CODE
if (resultCode == RESULT_OK){
Toast.makeText(_context,"WAS LOGIN", Toast.LENGTH_LONG).show();
mainProgram();
}else if(resultCode == RESULT_CANCELED){
Toast.makeText(_context,"WAS NOT LOGIN", Toast.LENGTH_LONG).show();
showLoginForm();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
setTheme(SampleList.THEME); // Used for theme switching in samples
super.onCreate(savedInstanceState);
Intent intent = new Intent(MainActivity.this, LoginProc.class);
startActivityForResult(intent, 0);
}
private void mainProgram(){
setContentView(R.layout.mainlayout);
}
在 LoginProc.class 中
@Override
protected void onCreate(Bundle savedInstanceState) {
GCMRegistrar.checkDevice(this);
GCMRegistrar.checkManifest(this);
GCMRegistrar.register(this, SENDER_ID);
registerReceiver(mHandleMessageReceiver,new IntentFilter(DISPLAY_MESSAGE_ACTION));
this.regId = GCMRegistrar.getRegistrationId(this);
GCMRegistrar.register(this, SENDER_ID);
}
private final BroadcastReceiver mHandleMessageReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String newMessage = intent.getExtras().getString(EXTRA_MESSAGE);
// Waking up mobile if it is sleeping
WakeLocker.acquire(getApplicationContext());
Toast.makeText(getApplicationContext(),"New Message On MHandled:"+newMessage, Toast.LENGTH_LONG).show();
// Releasing wake lock
WakeLocker.release();
//hide progress
showProgress(false);
//set result vars for this intent
Intent i=new Intent();
LoginProc.this.setResult(RESULT_OK,i);
//Intent i = new Intent();
//setResult(RESULT_CANCELED, i);
finish();
}
};
即使在事件 GCM 成功后,结果也始终显示 ToastText“WAS NOT LOGIN”(Toas“在 Mhandled 上显示新消息”)。
这里需要正确的方向,非常感谢
【问题讨论】:
标签: java android android-intent broadcast google-cloud-messaging