0

これは Google チャット アプリケーションです。Google Chat からメッセージを受け取ったら、アクティビティがバックグラウンドにあるときに通知としてステータス バーに表示したいと考えています。

メソッドにブール値を設定しようとしましたonPause()が、うまくいきませんでした。

public void addMessage(String chatid, String msg) {
    // I want to the execute this line only when the activity is in background
    notify.getCurrentActivity(getApplicationContext(), msg, fromName, chatid);
}

public void getCurrentActivity(Context context, String msg){
    showNotification(context, msg, fromName, fromChatID);
}
4

2 に答える 2

0

以下でやってみてください

try{
    boolean foregroud = new ForegroundCheckTask().execute(context).get();


        if(foregroud)
        {
            //app is foreground 
        }

        else
        {
            //app is not foreground         }
    }catch(Exception e)
    {
        e.toString();
    }

非同期の下に追加

    //Foreground check
class ForegroundCheckTask extends AsyncTask<Context, Void, Boolean> {

      @Override
      protected Boolean doInBackground(Context... params) {
        final Context context = params[0].getApplicationContext();
        return isAppOnForeground(context);
      }

      private boolean isAppOnForeground(Context context) {
        ActivityManager activityManager = (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
        List<RunningAppProcessInfo> appProcesses = activityManager.getRunningAppProcesses();
        if (appProcesses == null) {
          return false;
        }
        final String packageName = context.getPackageName();
        for (RunningAppProcessInfo appProcess : appProcesses) {
          if (appProcess.importance == RunningAppProcessInfo.IMPORTANCE_FOREGROUND && appProcess.processName.equals(packageName)) {
            return true;
          }
        }
        return false;
      }
    }
于 2012-09-11T06:44:37.843 に答える
0

私は自分で解決策を見つけます

秘密の int キー。// グローバルとして宣言

protected void onPause

{

キー=1;

super.onpause();

}

保護されたボイド onResume{

キー=0;

super.onResume();

}

public void addMessage(文字列chatid, 文字列msg) {

if(キー==1)

{

notify.getCurrentActivity(getApplicationContext(), msg, fromName, chatid);

}

}

于 2012-09-12T05:30:31.400 に答える