package com.fanxin.app.activity;
import android.app.Notification;
import android.app.NotificationManager;
import android.app.PendingIntent;
import android.content.Context;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.NotificationCompat;
import android.view.View;
import com.easemob.chat.EMChatManager;
import com.easemob.chat.EMMessage;
import com.easemob.chat.EMMessage.Type;
import com.fanxin.app.MYApplication;
import com.fanxin.app.fx.MainActivity;
import com.fanxin.app.utils.CommonUtils;
import com.easemob.util.EasyUtils;
public class BaseActivity extends FragmentActivity {
private static final int notifiId = 11;
protected NotificationManager notificationManager;
@Override
protected void onCreate(Bundle arg0) {
super.onCreate(arg0);
notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
MYApplication.getInstance().addActivity(this);
}
@Override
protected void onResume() {
super.onResume();
// onresume时,取消notification显示
EMChatManager.getInstance().activityResumed();
}
@Override
protected void onStart() {
super.onStart();
}
/**
* 当应用在前台时,如果当前消息不是属于当前会话,在状态栏提示一下 如果不需要,注释掉即可
*
* @param message
*/
protected void notifyNewMessage(EMMessage message) {
// 如果是设置了不提醒只显示数目的群组(这个是app里保存这个数据的,demo里不做判断)
// 以及设置了setShowNotificationInbackgroup:false(设为false后,后台时sdk也发送广播)
if (!EasyUtils.isAppRunningForeground(this)) {
return;
}
NotificationCompat.Builder mBuilder = new NotificationCompat.Builder(
this).setSmallIcon(getApplicationInfo().icon)
.setWhen(System.currentTimeMillis()).setAutoCancel(true);
String ticker = CommonUtils.getMessageDigest(message, this);
if (message.getType() == Type.TXT)
ticker = ticker.replaceAll("\\[.{2,3}\\]", "[表情]");
// 设置状态栏提示
mBuilder.setTicker(message.getFrom() + ": " + ticker);
// 必须设置pendingintent,否则在2.3的机器上会有bug
Intent intent = new Intent(this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
PendingIntent pendingIntent = PendingIntent.getActivity(this, notifiId,
intent, PendingIntent.FLAG_ONE_SHOT);
mBuilder.setContentIntent(pendingIntent);
Notification notification = mBuilder.build();
notificationManager.notify(notifiId, notification);
notificationManager.cancel(notifiId);
}
/**
* 返回
*
* @param view
*/
public void back(View view) {
finish();
}
}