実現したいこと
Firebase Cloud Messagesで、Androidアプリにpush通知を送っています。
この時、送信された通知をタップした場合、MainActivityが起動しますが、これを任意のActivityを起動する動作に変更しようとしています。
ここを参考にして、Manifest.xmlを以下のように作成しました。
通知をタップした際、PushReceiveActivity
が起動され、このアクティビティ内で受け取ったidなどから起動するアクティビティを操作するものだと理解したのですが、実際は通知をタップしてもMainActivity
が呼ばれてしまいます。
MainActivity
内で、通知がタップされた場合に起動するアクティビティの処理を書いてもよいのですが、できれば通常起動・通知をタップした時の起動でアクティビティを分けたいと考えています。
push通知をタップした時に起動するアクティビティをManifest.xmlで指定することは可能でしょうか?
ご回答よろしくお願いします。
Manifest.xml(一部省略)↓
xml
1<activity android:name="activity.PushReceiveActivity" 2 android:launchMode="singleTask"> 3 <intent-filter> 4 <action android:name="PUSH" /> 5 <category android:name="android.intent.category.DEFAULT" /> 6 </intent-filter> 7 </activity> 8 9 <activity 10 android:name=".activity.MainActivity"" 11 android:launchMode="singleTask"> 12 <intent-filter> 13 <action android:name="android.intent.action.MAIN" /> 14 <category android:name="android.intent.category.LAUNCHER" /> 15 </intent-filter> 16 </activity> 17 18 19 <service android:name=".lib.firebase.MyFirebaseMessagingService"> 20 <intent-filter> 21 <action android:name="com.google.firebase.MESSAGING_EVENT" /> 22 </intent-filter> 23 </service> 24 25 <service android:name=".lib.firebase.MyFirebaseInstanceIDService"> 26 <intent-filter> 27 <action android:name="com.google.firebase.INSTANCE_ID_EVENT" /> 28 </intent-filter> 29 </service> 30 31 <!-- Set custom default icon. This is used when no icon is set for incoming notification messages. 32 See README(https://goo.gl/l4GJaQ) for more. --> 33 <meta-data 34 android:name="com.google.firebase.messaging.default_notification_icon" 35 android:resource="@drawable/ic_bungu_logo" /> 36 <!-- Set color used with incoming notification messages. This is used when no color is set for the incoming 37 notification message. See README(https://goo.gl/6BKBk7) for more. --> 38 <meta-data 39 android:name="com.google.firebase.messaging.default_notification_color" 40 android:resource="@color/orange" />
PushReceiveActivity↓
java
1public class PushReceiveActivity extends AppCompatActivity { 2 3 public static final String ARG_TYPE = "type"; 4 public static final String ARG_ID = "id"; 5 6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 super.onCreate(savedInstanceState); 9 String id = getIntent().getStringExtra(ARG_ID); 10 String type = getIntent().getStringExtra(ARG_TYPE); 11 12 // 表示したい画面へデータを渡して画面遷移 13 Intent intent = new Intent(this, HogeActivity.class); 14 startActivity(intent); 15 } 16}
あなたの回答
tips
プレビュー