umengプッシュクライアントが受信していません
1550 ワード
前言
こちらのappグループはプッシュを統一したいと思って、集約プッシュはumengを選んで、すべての準備ができて、demoはすべて正常に運行して、しかし本当にappにアクセスする時、死活はプッシュを受け取ることができなくて、サービス端を調べて、大丈夫です.その後コンソールテストモードでも受信できず、基本的な問題はapp側に位置しています.
問題の位置付け
これは以前のapp最適化から言えば、機能がますます多くなってから、私たちのappもマルチプロセスの応用になったので、以下のように最適化しました.
/**
*
*
* @return
*/
public boolean isAppMainProcess() {
int pid = android.os.Process.myPid();
String processName = getProcessName(getApplicationContext(), pid);
if (processName == null) {
return false;
}
return getPackageName().equalsIgnoreCase(processName);
}
public static String getProcessName(Context cxt, int pid) {
ActivityManager am = (ActivityManager) cxt.getSystemService(Context.ACTIVITY_SERVICE);
List runningApps = am.getRunningAppProcesses();
if (runningApps == null) {
return null;
}
for (android.app.ActivityManager.RunningAppProcessInfo procInfo : runningApps) {
if (procInfo.pid == pid) {
return procInfo.processName;
}
}
return null;
}
主に現在のメインプロセスかどうかを位置決めし、アプリケーションで初期化作業を行い、繰り返し実行せずにappの起動速度を速める.
しかし今回、umengプッシュにアクセスした後、突然プッシュメッセージを受信できなくなったのはこれに関連して、初期化の方法を、今回最適化されたコードブロックから移動すればよく、ピット、多くは言わない.
公式サイトの統合ドキュメントでは、registerメソッドを呼び出すときにプロセス判断処理をしないでください.メインプロセスとchannelプロセスは、長い接続の正確な確立を保証するためにregisterメソッドを呼び出す必要があります.