質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

3415閲覧

androidで別アプリを起動時のIntentでデータを渡したいが、起動するアプリが既に起動中の場合にはデータがnullになってしまい、困っています。

huckepain

総合スコア14

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2020/09/10 08:34

アプリがA、Bとあります。
アプリAのボタンをタップすることで、アプリBを起動させ、
Aの情報を、Bで受け取るアプリを作成しています。

現状、
アプリBが起動していない状態で、アプリAから起動させた場合は、
情報が渡っていることが確認できてます。また、この状態で、再度アプリAからアプリBを起動させると
新しい情報が渡っていることも確認できています。

しかし、アプリBを先に起動してから、アプリAを起動、その後ボタンタップで、アプリBの起動を行った場合には、
アプリBのgetStringExtraには”null”になってしまいます。

調査しておりますが、対処方法がわからない状態です。
設定が足りないのか、そもそもできないのか、ご教授願います。

 

アプリAのプログラム(ボタンをタップ時の処理のみ)

java

1Intent intent = new Intent(Intent.ACTION_MAIN); 2intent.setClassName(packageName, "MainActivity"); 3intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 4 5JSONObject jsonData = new JSONObject(); 6jsonData.put("test_date", new Date().getTime()); 7intent.putExtra("ScanJsonData", jsonData.toString()); 8 9startActivity(intent);

アプリBのプログラム

java

1protected void onResume() { 2 super.onResume(); 3 4 Intent intent = getIntent(); 5 String scanJsonData = intent.getStringExtra("ScanJsonData"); 6 7 Log.d("", "scanJsonData" + scanJsonData); 8}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

起動するアプリ側に
以下を追加することで解消できました。

java

1  @Override 2 protected void onNewIntent(Intent intent) { 3 4 super.onNewIntent(intent); 5 6 setIntent(intent); 7 }

投稿2020/09/15 01:31

huckepain

総合スコア14

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問