Intereting Posts
Как создать поток Looper, а затем отправить его сообщение сразу? Макет таблицы с одинаковой высотой строк Как получить определенный узел из базы данных firebase в android Раздражающие лагами / заиканиями в игре для Android Кто-нибудь знает значение результата команды «top» в android? Android installLocation при построении с cordova cli Где я могу найти ресурсы и образцы кода для использования сигнала с акселерометра? Как переопределить кнопку камеры Google Glass Стоимость повышения намерения в андроиде Ошибка ProGuard не может найти суперкласс или интерфейс org.apache.http.entity Как обновить содержимое вкладки фрагментов при нажатии кнопки Проблемы с аналитикой Google после обновления игровых сервисов до 7.5 Как создать EditText с закругленными углами? Как использовать MediaSessionCompat и поддерживать обратную совместимость с RemoteControlClient? При отправке уведомлений от firebase в андроид

Откройте действие, нажав на push-уведомление из Parse

Я хочу получить push-уведомление из Parse и открыть операцию List и использовать aim.putextra ("dataFromParse") перед началом действия. Я могу получить push, но только откройте MainActivity, используя это:

PushService.setDefaultPushCallback(this, MainActivity.class); ParseInstallation.getCurrentInstallation().saveInBackground(); 

Я хочу иметь это как значение по умолчанию, но также должен иметь возможность запускать операцию «Список». Я также пробовал использовать приемник-получатель, но тогда я могу только открыть активность при получении нажатия, а не при нажатии.

manifest.xml:

 <receiver android:name="com.example.Push android:exported="false"> <intent-filter> <action android:name="com.example.UPDATE_STATUS" /> </intent-filter> </receiver> 

Push.java:

 public class Push extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { //Start activity } } 

Вещь, о которой я не уверен, заключается в том, как я должен захватить нажатие в фоновом режиме и сказать, что он должен открыть операцию «Список» с помощью специального намерения.putExtra («dataFromParse»), когда пользователь нажимает уведомление. Где я должен его кодировать и как? В MainActivity, в деятельности List или делать что-то другое с получателем?

Solutions Collecting From Web of "Откройте действие, нажав на push-уведомление из Parse"

Решил это, имея активность по умолчанию как MainActivity, но проверяя намерение, и если в «com.parse.Data» есть что-то, я начну новое намерение.

 Intent intent = getIntent(); Bundle extras = intent.getExtras(); String jsonData = extras.getString("com.parse.Data"); JSONObject json = new JSONObject(jsonData); String pushStore = json.getString("data"); if(pushStore!=null) { Intent pushIntent = new Intent(); pushIntent.setClassName(MainActivity.this, "package.name.List"); pushIntent.putExtra("store", pushStore); startActivity(pushIntent); } 

Затем просто отправьте push с json: {«alert»: «Test», «data»: «store1»}

Надеюсь, это поможет.

Попробуйте это … он отлично работает …

 try { Intent intent = getIntent(); Bundle extras = intent.getExtras(); if (extras != null) { String jsonData = extras.getString("com.parse.Data"); JSONObject json; json = new JSONObject(jsonData); String pushStore = json.getString("alert"); data.setText(pushStore); } } catch (JSONException e) { // TODO Auto-generated catch block e.printStackTrace(); } 

Согласно официальной документации Parse по https://www.parse.com/docs/android/guide#push-notifications-customizing-notifications :

Если ваш push не имеет параметра «uri», onPushOpen будет вызывать активность запуска вашего приложения.

Итак, текущий принятый ответ учитывает только тот случай, когда ваш push не имеет «uri», и он открывает вашу MainActivity. Если вы хотите открыть конкретную операцию, вы можете определить intent-filter для этого Действия и отправить этот url-фильтр намерения на ваш push.

Вы должны переопределить метод onPushOpen (…) в классе приемника:

 import com.parse.ParsePushBroadcastReceiver; public class PushIntentReceiver extends ParsePushBroadcastReceiver { @Override protected void onPushOpen(Context context, Intent intent) { JSONObject pushData = null; try { pushData = new JSONObject(intent.getStringExtra(KEY_PUSH_DATA)); Intent pushIntent = new Intent(context, YourActivity.class); pushIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); pushIntent.putExtra("store", pushData.getString("data")); context.startActivity(pushIntent); } catch (JSONException e) { e.printStackTrace(); } } }