0

MFP IntegratedのAndroidアプリを開発中です。 私はMFPプッシュ通知を実装しており、うまくいきます。私は通知を受け取ります。しかし、通知をクリックすると、アプリが再起動します。IBM Mobilefirst:通知をクリックすると、アプリケーションが再開されます。

実際の問題は、アプリの起動時に起動されるスプラッシュアクティビティと、すべてのMFPの内容を初期化してこのアクティビティを終了させて​​ログインアクティビティにすることでした。

私のマニフェストファイルでは、以下のように受信者を定義しています。

<activity 
      android:name="SplashActivity" 
      android:theme="@style/AppTheme.NoActionBar"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
      <intent-filter> 
      <action android:name="com.mypackage.app_name.NOTIFICATION" /> 
      <category android:name="android.intent.category.DEFAULT" /> 
     </intent-filter> 
     </activity> 

受信機は、私のスプラッシュアクティビティで定義されているが、私はこの活動を終えやその他の活動へのログインから、その後の活動にログインしようとしています。現在、スプラッシュアクティビティはアプリの起動ごとに1回しか呼び出されません。

このため、通知をクリックすると、他のアクティビティが強制終了され、スプラッシュアクティビティのみを受信するように要求されるため、スプラッシュアクティビティが再度起動されます。

私のアプリを設計するにはどのようにすればよいのですか?(スプラッシュを起動してはいけませんが、代わりに同じアクティビティにする必要があります。アプリが開いていて、onrecieveメッセージメソッドを呼び出してください)。

お勧めします。

私は前に同様のタイプの質問をしましたが、問題を見つけることができましたので、実際の問題を解決するために質問します。 Mobilefirst PushNotification: On using wl_anonymousUserRealm at server, app is not calling onReceive method on clicking notification

答えて

0

最後に解決策を得ました。

私はダミーのアクティビティを作成し、私のアプリがバックグラウンドで動作しているアプリが通知を取得した場合

<activity 
    android:name=".controllers.activities.DummyActivity" 
    android:launchMode="singleTask" 
    android:theme="@style/AppTheme.NoActionBar"> 


    <intent-filter> 
     <action android:name="com.mypackage.NOTIFICATION" /> 
     <category android:name="android.intent.category.DEFAULT" /> 
    </intent-filter> 
</activity> 

をit.`するには、上記言及コードを結合しています。通知をクリックすると、ダミーアクティビティが開き、onResume()メソッドでfinish()メソッドを呼び出しています。だから、この特定の活動は、それが開かれる前に終了し、それは過去の活動を開くでしょう、そして、私はそれが間違っている場合、私はアプリを再起動しているapplaunchedと言うチェックを入れています。

これはまっすぐな解決策ではありませんが、今のところ回避策です。

1

Setting up a GCM client in AndroidReceiving downstream messagesはあなたのシナリオのために見ることになります偉大なリファレンスです。

メッセージの受信に必要なGCM受信者とサービスを定義する必要があります。これはActivityのメッセージを受信するのに大いに役立ちます(ServiceはUIを必要とせず、BroadcastReceiverはCPUが起動してリスナーサービスがそのタスクを完了するのに役立ちます)。

希望すると便利です。

+0

ご返信ありがとうございます。しかし、私はMobilefirst SDKのやり方を理解したかったのです。あなたはそれのいくつかのアイデアを持っている場合は、あなたがMobilefirst側で私を助けることができる場合... – Bender

関連する問題