Вызовите строку из действия в другое - PullRequest
0 голосов
/ 26 мая 2018

Я хотел бы вызвать строку из действия в другое.Это не просто как обычный вызов, но этот вызов происходит, когда я открываю уведомление.У меня есть обработчик открытого уведомления, в котором хранятся строки.Я хочу вызвать значение, хранящееся в строках title и body Вот код открытого обработчика.

 public class MyNotificationOpenedHandler implements OneSignal.NotificationOpenedHandler {
// This fires when a notification is opened by tapping on it.
private Context mContext;
public MyNotificationOpenedHandler (Context context) {
   mContext = context;
}
@Override
public void notificationOpened(OSNotificationOpenResult result) {
    OSNotificationAction.ActionType actionType = result.action.type;
    JSONObject data = result.notification.payload.additionalData;
    String title = result.notification.payload.title;
    String body = result.notification.payload.body;
    String launchUrl = result.notification.payload.launchURL; // update docs launchUrl

    String customKey;
    String openURL = null;
    Object activityToLaunch = AboutActivity.class;

    if (data != null) {
        customKey = data.optString("customkey", null);
        openURL = data.optString("openURL", null);

        if (customKey != null)
            Log.i("OneSignalExample", "customkey set with value: " + customKey);

        if (openURL != null)
            Log.i("OneSignalExample", "openURL to webview with URL value: " + openURL);
    }


    Intent intent = new Intent(mContext, (Class<?>) activityToLaunch);
    intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT | Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP);
    intent.putExtra("openURL", openURL);
    Log.i("OneSignalExample", "openURL = " + openURL);
    mContext.startActivity(intent);

}
}

Основной вопрос, как я могу вызватьстроки title и body в других видах деятельности

1 Ответ

0 голосов
/ 26 мая 2018

Используйте пакет или сразу добавьте дополнительно:

Intent intent = new Intent(mContext, (Class<?>) activityToLaunch);
intent.putExtra("title", title);
intent.putExtra("body", body);
mContext.startActivity(intent);

В следующем упражнении:

Intent intent = getIntent();
String title = intent.getStringExtra("title");
String body = intent.getStringExtra("body");

если структура сложная, вы можете использовать пакет.

Bundle bundle = new Bundle();
bundle.putString("title", title);
bundle.putString("body", body);
intent.putExtras(bundle);

Если данные необходимы для того, чтобы быть глобальной переменной для всего приложения, вы можете расширить Приложение и реализовать для этих данных метод получения и установки.

Кроме того, вы можете указать заголовок и текств базу данных или SharedPreferences , и читать его из любого действия, которое вы хотите.Просто убедитесь, что не выполняете задачу ввода-вывода в потоке пользовательского интерфейса.

...