2016-10-03 3 views
0

カウントダウンタイマーアプリケーションを構築しようとしています。 Coundownが0になったときにユーザーに通知する必要があります。私はCountDownTimerをCountに使用します。ここでCountDownTimerクラスのOnfinish()関数に関する通知

は私が望んでいたものです:

カウントダウンが0にヒットしたときに通知(200ミリ秒を言うことができます)振動で通知チューンとステータスバーに表示され、彼らは通知を押したとき、それは、彼らが最後に残さアプリページに行きます時間(私は任意のアクティビティを開く必要はありません)。ユーザーがまだアプリにいて、通知がステータスバーに表示されている場合は、そのボタンを押すと、その場所に移動します(アクティビティを開始したくない場合)。ここで

は、私はすでに試したものです:

私はCountDownTimerクラスのonFinish()機能に通知を試してみました。それはうまく動作しますが、ユーザーが通知を押すと、現在のアプリページの代わりに新しいアクティビティが開始されます。

解決策を探して2日ほど経ちましたが、まだ解決策はありません。 だから、どんな助けもありがとう!ありがとう!アプリケーションがバックグラウンドで実行されているか、いないのいずれか(バックグラウンドのシナリオで)新しいアクティビティを押すか、そのまま(ユーザーがアプリ内にすでに存在するとして)、それを残している場合

答えて

2

チェック

boolean isInBackground = true; 
ActivityManager am = (ActivityManager) context.getSystemService(context.ACTIVITY_SERVICE); 

ActivityManager.RunningTaskInfo foregroundTaskInfo = am.getRunningTasks(1).get(0); 

String foregroundTaskPackageName = foregroundTaskInfo .topActivity.getPackageName(); 

PackageManager pm = context.getPackageManager(); 
PackageInfo foregroundAppPackageInfo = pm.getPackageInfo(foregroundTaskPackageName, 0); 

String foregroundTaskAppName = foregroundAppPackageInfo.applicationInfo.loadLabel(pm).toString(); 
if(!"Your App name".equalsIgnoreCase(foregroundTaskAppName)){ 
     isInBackground=false; 
} 

アプリケーション名でなければなりませんstrings.xmlにあるもの

<string name="app_name">Your app name</string> 
+0

ここで通知コードを入力する必要がありますか? –

+0

ここでインテントで通知コードを入力する必要がある場所を教えてください。私は迷っています –

+0

あなたの質問によると、あなたはこの論理をここに置くべきです "と彼らが通知を押すと" ...通知のクリックを処理するプッシュ通知のサンプルについては、このリンクをチェックしてくださいhttp://www.androidhive.info/ 2016/02/android-push-notifications-gcm-php-mysql-realtime-chat-app-part-2 /を使用しています。ユーザー通知のクリックを処理するセクションを確認する必要があります – Stallion

関連する問題