0

Я делаю приложение, которое использует уведомления Firebase и все работает отлично, за исключением того факта, когда пользователь нажимает на уведомление, я хочу открыть мероприятие и когда пользователь нажимает кнопку «Назад», я хотите вернуться к основному виду деятельности, но теперь приложение закрывается только тогда, когда пользователь нажимает кнопку «Назад».Firebase уведомление действие действия действия активности родителя

Вот мой манифест код:

<?xml version="1.0" encoding="utf-8"?> 

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 

    package="com.example.massa.luxvilla"> 



    <uses-permission android:name="android.permission.INTERNET" /> 

    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> 

    <uses-permission android:name="android.permission.VIBRATE" /> 



    <application 

     android:allowBackup="true" 

     android:icon="@mipmap/ic_launcher" 

     android:label="@string/app_name" 

     android:supportsRtl="true" 

     android:theme="@style/AppTheme" 

     android:name=".LuxVilla"> 

     <meta-data 

      android:name="android.app.default_searchable" 

      android:value="com.example.massa.luxvilla.searchableactivity" /> 



     <provider 

      android:name=".sugestoes.SearchSugestionsProvider" 

      android:authorities="com.example.massa.luxvilla.sugestoes.SearchSugestionsProvider" /> 



     <activity android:name=".MainActivity" 

      android:theme="@style/Main"> 

      <intent-filter> 

       <action android:name="android.intent.action.MAIN" /> 



       <category android:name="android.intent.category.LAUNCHER" /> 

      </intent-filter> 

     </activity> 

     <activity android:name=".searchableactivity"> 

      <intent-filter> 

       <action android:name="android.intent.action.SEARCH" /> 

      </intent-filter> 



      <meta-data 

       android:name="android.app.searchable" 

       android:resource="@xml/searchable" /> 

     </activity> 

     <activity 

      android:name=".Actividades.casaactivity" 

      android:parentActivityName="com.example.massa.luxvilla.MainActivity" 

      android:theme="@style/Infocasa"> 

      <intent-filter> 

       <action android:name="casaactivity" /> 

       <category android:name="android.intent.category.DEFAULT" /> 

      </intent-filter> 



      <meta-data 

       android:name="android.support.PARENT_ACTIVITY" 

       android:value="com.example.massa.luxvilla.MainActivity"/> 

     </activity> 



     <activity android:name=".Actividades.SettingsActivity"></activity> 



     <service 



      android:name=".notificacoes.FirebaseMessagingService"> 



      <intent-filter> 



       <action android:name="com.google.firebase.MESSAGING_EVENT"/> 



      </intent-filter> 



     </service> 



     <service 



      android:name=".notificacoes.FirebaseInstanceIDService"> 



      <intent-filter> 



       <action android:name="com.google.firebase.INSTANCE_ID_EVENT"/> 



      </intent-filter> 



     </service> 



     <meta-data 

      android:name="com.google.firebase.messaging.default_notification_color" 

      android:resource="@color/colorAccent" /> 

    </application> 



</manifest> 

и мой PHP скрипт, отправить уведомление:

<?php 

#API access key from Google API's Console 

    define('API_ACCESS_KEY', 'API_KEY'); 

    $topic = "/topics/todos"; 

$url = 'https://fcm.googleapis.com/fcm/send'; 
$fields = array (
     'to' => $topic, 
     'notification' => array (
       "body" => "nova casa adicionada", 
       "title" => "Nova casa", 
       "sound"=> "default", 
       "click_action"=> "casaactivity" 
     ), 
     'data' => array(
      "localcasa" => "local", 
      "precocasa"=> "Preço", 
      "imgurl"=> "link imagem", 
      "infocs"=> "info", 
      "csid"=> "id da casa" 
     ) 
); 
$fields = json_encode ($fields); 
$headers = array (
     'Authorization: key=' . API_ACCESS_KEY, 
     'Content-Type: application/json' 
); 

$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_POST, true); 
curl_setopt ($ch, CURLOPT_HTTPHEADER, $headers); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true); 
curl_setopt ($ch, CURLOPT_POSTFIELDS, $fields); 

$result = curl_exec ($ch); 
curl_close ($ch); 

?> 

Спасибо.

+0

Каково имя, которое вы хотите открыть? – Manza

+0

Я хочу сделать то же самое из родительского стека в ожидающих намерениях, открыть casaactivity и когда пользователь нажимает на кнопку возврата назад в mainactivity –

ответ

0

Вы можете попробовать что-то вроде этого в Activity вы открываете с помощью уведомления:

@Override 
public void onBackPressed() { 
    if (isTaskRoot()) { 
     finish(); 
     startActivity(new Intent(this, MainActivity.class)); 
    } else { 
     super.onBackPressed(); 
    } 
} 

вы будете проверять, если Activity находится в стеке одной и той же задачи, и если нет, то вы будете открывать MainActivity

+0

спасибо, что у меня нет времени, чтобы проверить ваш ответ, когда у меня есть время, которое я тестирую, и вижу результат. –