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

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

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

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

0回答

2502閲覧

Androidアプリを強制的に再起動する

masanobii

総合スコア11

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2021/10/19 23:23

編集2021/10/20 10:09

Androidアプリを強制的に再起動したいです。
以下サイトを参考にkotlinコードに変換して書いています。
https://qiita.com/Shiozawa/items/85f078ed57aed46f6b69

ただし、MainActivityからRestartActivityを呼び出せません。
初歩的なことかもしれませんが、何処を修正すべきか教えていただけないでしょうか。

現在の状況
エラーは出ておりません。
RestartActivityのonCreate()にLog.d("debug", "RestartActivity")を書いておりますが、
これが表示されていないので、RestartActivityが呼び出されているのかが不明で困っております。
(おそらくRestartActivityは呼び出されていないのではと思っています)

以上よろしくお願いします。

MainActivity

1class MainActivity : AppCompatActivity() { 2 3 private lateinit var binding: ActivityMainBinding 4 5 override fun onCreate(savedInstanceState: Bundle?) { 6 super.onCreate(savedInstanceState) 7 binding = ActivityMainBinding.inflate(layoutInflater) 8 setContentView(binding.root) 9 10 binding.btnTest.setOnClickListener { 11 restartApp() 12 } 13 } 14 15 private fun restartApp() { 16 Log.d("debug", "restartApp") 17 val context = applicationContext 18 val intent = RestartActivity.createIntent(context) 19 context.startActivity(intent) 20 } 21}

RestartActivity

1class RestartActivity : Activity() { 2 3 companion object { 4 const val EXTRA_MAIN_PID = "RestartActivity.main_pid" 5 fun createIntent(context: Context): Intent? { 6 val intent = Intent() 7 intent.setClassName(context.packageName, RestartActivity::class.java.name) 8 intent.flags = Intent.FLAG_ACTIVITY_NEW_TASK 9 intent.putExtra(EXTRA_MAIN_PID, Process.myPid()) 10 return intent 11 } 12 } 13 14 public override fun onCreate(savedInstanceState: Bundle?) { 15 super.onCreate(savedInstanceState) 16 17 Log.d("debug", "RestartActivity") 18 19 // Kill the main process. 20 val intent = intent 21 val mainBrowserPid = intent.getIntExtra(EXTRA_MAIN_PID, -1) 22 assert(mainBrowserPid != -1) 23 assert(mainBrowserPid != Process.myPid()) 24 Process.killProcess(mainBrowserPid) 25 26 // Fire an Intent to restart the app 27 val context = applicationContext 28 val restartIntent = Intent(Intent.ACTION_MAIN) 29 restartIntent.setClassName(context.packageName, MainActivity::class.java.name) 30 restartIntent.flags = Intent.FLAG_ACTIVITY_NEW_TASK 31 context.startActivity(restartIntent) 32 33 // Kill this process. 34 finish() 35 Process.killProcess(Process.myPid()) 36 Log.d("debug", "RestartActivity End") 37 } 38}

AndroidManifest

1 <activity 2 android:name=".RestartActivity" 3 android:excludeFromRecents="true" 4 android:exported="false" 5 android:launchMode="singleInstance" 6 android:process=":restart_process" 7 android:theme="@android:style/Theme.Translucent.NoTitleBar"> 8 </activity>

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

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

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

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

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

y_waiwai

2021/10/19 23:36

呼び出せない、とはどうなるんでしょうか。 エラーが出るならエラーメッセージを提示しましょう
masanobii

2021/10/20 00:30

ご指摘ありがとうございます。 エラーは出ておりません。 RestartActivityのonCreate()にLog.d("debug", "RestartActivity")を書いておりますが、 これが表示されていないので、RestartActivityが呼び出されているのかが不明で困っております。 (おそらくRestartActivityは呼び出されていないのではと思っています)
y_waiwai

2021/10/20 02:58

それを質問文に追記しましょう いまのままではわけわかりません
masanobii

2021/10/20 05:49

承知しました。修正いたしました。宜しくお願い致します。
masanobii

2021/10/24 08:27

コメントありがとうございます。 ProcessPhoenixで再起動の処理は出しましたが、アプリ画面を表示することができておりません。 本件についても、追加でご教授いただけないでしょうか?
hoshi-takanori

2021/10/24 09:23

アプリ再起動でググって見つけただけで、使ったことはないので分からないです。ごめんなさい。
masanobii

2021/10/25 11:04

残念ですが、承知しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問