当前位置:编程学习 > wap >>

极光推送中广播接受数据为什么显示不到TextViewView

package com.itquanta;

import com.itquanta.R;

import cn.jpush.android.api.InstrumentedActivity;
import cn.jpush.android.api.JPushInterface;

import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.os.Bundle;
import android.util.Log;
import android.widget.TextView;

public class MyReceiver extends InstrumentedActivity {
private TextView tv;
private static final String TAG = "InnerReceiver";

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
JPushInterface.setDebugMode(true);  //设置开启日志,发布时请关闭日志
        JPushInterface.init(this);      // 初始化 JPush
IntentFilter filter1 =new IntentFilter("cn.jpush.android.intent.REGISTRATION");
IntentFilter filter2 =new IntentFilter("cn.jpush.android.intent.UNREGISTRATION");
IntentFilter filter3 =new IntentFilter("cn.jpush.android.intent.MESSAGE_RECEIVED");
IntentFilter filter4 =new IntentFilter("cn.jpush.android.intent.NOTIFICATION_RECEIVED");
IntentFilter filter5 =new IntentFilter("cn.jpush.android.intent.NOTIFICATION_OPENED");

registerReceiver(InnerReceiver, filter1);
registerReceiver(InnerReceiver, filter2);
registerReceiver(InnerReceiver, filter3);
registerReceiver(InnerReceiver, filter4);
registerReceiver(InnerReceiver, filter5);

tv = (TextView) findViewById(R.id.tv);

}

private BroadcastReceiver InnerReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
Bundle bundle = intent.getExtras();
Log.d(TAG, "onReceive - " + intent.getAction() + ", extras: "
+ printBundle(bundle));

if (JPushInterface.ACTION_REGISTRATION_ID
.equals(intent.getAction())) {
String regId = bundle
.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "接收Registration Id : " + regId);
// send the Registration Id to your server...
} else if (JPushInterface.ACTION_UNREGISTER.equals(intent
.getAction())) {
String regId = bundle
.getString(JPushInterface.EXTRA_REGISTRATION_ID);
Log.d(TAG, "接收UnRegistration Id : " + regId);
// send the UnRegistration Id to your server...
} else if (JPushInterface.ACTION_MESSAGE_RECEIVED.equals(intent
.getAction())) {
Log.d(TAG,
"接收到推送下来的自定义消息: "
+ bundle.getString(JPushInterface.EXTRA_MESSAGE));
tv.setText(bundle.getString(JPushInterface.EXTRA_MESSAGE));
System.out.println("======================="+tv);

} else if (JPushInterface.ACTION_NOTIFICATION_RECEIVED
.equals(intent.getAction())) {
Log.d(TAG, "接收到推送下来的通知");
int notifactionId = bundle
.getInt(JPushInterface.EXTRA_NOTIFICATION_ID);
String content = bundle.getString(JPushInterface.EXTRA_ALERT);
Log.d(TAG, "接收到推送下来的通知的ID: " + notifactionId);
 tv.setText(content);
 System.out.println("======================="+tv);

} else if (JPushInterface.ACTION_NOTIFICATION_OPENED.equals(intent
.getAction())) {
Log.d(TAG, "用户点击打开了通知");

// 打开自定义的Activity
Intent i = new Intent(context, MyReceiver.class);
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 context.startActivity(i);

} else {
Log.d(TAG, "Unhandled intent - " + intent.getAction());
}

}
};

// 打印所有的 intent extra 数据
private static String printBundle(Bundle bundle) {
StringBuilder sb = new StringBuilder();
for (String key : bundle.keySet()) {
if (key.equals(JPushInterface.EXTRA_NOTIFICATION_ID)) {
sb.append("\nkey:" + key + ", value:" + bundle.getInt(key));
} else {
sb.append("\nkey:" + key + ", value:" + bundle.getString(key));
}
}
return sb.toString();
}
}
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,