1

どうすればNotificationsそれらを区別してさまざまな活動に渡すことができますか?以下の方法では、値を含む3番目のparameter(String tag)値が取得されonMessage()ます。その値に応じて、開くURL(GoogleやFacebookなど)を区別したいと思いました。以下の「if」条件にインテントコードを含めると、アプリが終了します。助けてください

    private static void generateNotification(Context context, String message,
        String tag) {
    long when = System.currentTimeMillis();
    NotificationManager notificationManager = (NotificationManager) context
            .getSystemService(Context.NOTIFICATION_SERVICE);
    Notification notification = new Notification(R.drawable.ic_launcher,
            message, when);
    String title = context.getString(R.string.app_name);

    Log.d("GCM", "Tag Value " + tag);

        if (tag.equals("one")) {
            // pass to a different activity
                       notificationIntent = new Intent(Intent.ACTION_VIEW,
                Uri.parse("https://www.google.com"));

        }

        if (tag.equals("two")) {
            // pass to a different activity
                    notificationIntent = new Intent(Intent.ACTION_VIEW,
                    Uri.parse("https://www.facebook.com"));
        }


    // set intent so it does not start a new activity
    notificationIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP
            | Intent.FLAG_ACTIVITY_SINGLE_TOP);

    PendingIntent intent = PendingIntent.getActivity(context, 0,
            notificationIntent, 0);
    notification.setLatestEventInfo(context, title, message, intent);
    notification.flags |= Notification.FLAG_AUTO_CANCEL;
    notificationManager.notify(0, notification);

}
4

2 に答える 2

1

マニフェストで、アクティビティのインテントフィルタを作成します。このように起動する必要があります

<activity
        android:name=".activities.TabsActivity"
        android:screenOrientation="portrait" >
        <intent-filter>
            <action android:name="com.dittoadvertising.push" >
            </action>
            <category android:name="android.intent.category.DEFAULT" >
            </category>
        </intent-filter>

Uri.parse( "https://www.facebook.com")=フィルター内のアクション名の場合

アクティビティでは、メソッドonNewIntent(Intent newIntent)と呼ばれ、次にインテント着信が呼び出されます

于 2012-10-12T09:31:02.483 に答える
0

コードを次のようなものに変更します。

  if (tag.equals("one")) {
     notificationIntent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://www.google.com"));
  } else if (tag.equals("two")) {
     notificationIntent = new Intent(Intent.ACTION_VIEW,
            Uri.parse("https://www.facebook.com"));
  }
于 2012-10-12T08:52:37.610 に答える