2

私はいくつかのネイティブ部分を使用して、phonegapアプリケーションに取り組んでいます。
これまでのところ、javascriptとphonegapがまったく必要ないことを確認するために、通知をネイティブに実行しています。しかし、私が抱えている問題は、通知がクリックされたときにアプリを開きたい、またはアプリを前面に表示したいということです。

どうすればよいですか?インテントでメインアクティビティを設定しようとしましたが、毎回アプリケーションが再起動します。

      Intent notificationIntent = new Intent(context, main.app.class);
      notificationIntent.putExtra(NOTIF_RESPOND, runThis);
      notificationIntent.setAction(Intent.ACTION_VIEW);
      notificationIntent = notificationIntent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
4

1 に答える 1

3

実際、Androidには「アプリケーションの再起動」などはほとんどありません。基本的に、アプリケーションは、すべてのサービス/アクティビティ/プロバイダーなどのバンドルです。実行されているかどうかは関係ありません。

ユーザーが新しいアクティビティを開始すると(システムはアプリケーションが実行されているかどうかを確認します)、アプリケーション内にこのアクティビティを作成します。いいえの場合-新しいアプリケーションインスタンスを作成します。

つまり、メインアクティビティのインテントを設定した場合、つまり、アクティビティの別のインスタンスが起動しているということですよね?

もしそうなら-アクティビティの次のフラグを見てください、あなたはマニフェスト(またはPhoneGapの何か、申し訳ありません)に設定しようとする必要があります。http://developer.android.com/guide/topics/manifest/activity-element.html#lmode

<activity android:name=".YourActivity"
    android:launchMode="singleTask" 
    ...

このフラグは、必要になるタイプごとに新しいアクティビティを作成するのではなく、既存のアクティビティを再利用するようにシステムに指示します。onNewIntentこの場合、この「再起動」を処理するためにメソッドを適切に実装する必要があります。PhoneGapに実装されているかどうかは100%わかりません。

幸運を

于 2012-09-03T20:26:55.453 に答える