未分類

AndroidStudioで作ったアプリが画面オフ時にonCreateが呼ばれる状態について

投稿日:

ikosamiです。
作っていたゲームのBGMが、
なぜかスマホのロックをかけた時のみ
スマホがスリープになるたびに
画面は消えているのにBGMが鳴ったり、
二重に鳴ったりするという謎の現象で、
8時間ただそれだけを永遠と調べ続け、
ようやく見つけた答えを書こうと思います。

現在、午前2時になってしまいましたが、
めまいを感じるレベルの意味不明さだったので
もう書かずにはいられません。

 

起きていた状況

電源ボタンを押して、画面をオフにする(スマホをスリープ状態にする?)と、

onPause(),onStop(),onDestroy(),onCreate()

が呼ばれる。

ただし、スマホの画面をオンにしたときに出てくる。

セキュリティのロック画面を表示させた場合のみ発生。

ロック画面を出さないようにすると、この現象は発生しない。

 

onDestroy()が呼ばれるために、

電源ボタンを押しただけで、アプリはもう最初からになる。

 

先に結論

結論から言うと、原因は、

「画面の向きが変わることによるActivityの再起動」でした。

「AndroidManifest.xml」の、「<activity ……」の部分に

「android:configChanges=”orientation|screenSize”」を追加することで、

Activityの再起動が起こらなくなり、妙なタイミングでonCreateされることがなくなります。

 

参考にしたもの

https://ameblo.jp/shima-2012/entry-11909721998.html

 

ikosamiの場合は、なぜこんなに問題になったのか

まず、アプリでの画面の向きを横向きに変えている状態でした。

もちろん、横向きで作るのが悪いわけではなく、

今回は、画面回転による再起動だったために、この現象の原因の一つでした。

端末の方は、通常時の画面回転をオフにしている && ロック画面が表示される

という状態だったため、電源ボタンが押された時点で、ロック画面に切り替わり、

ロック画面は縦向きのため、縦方向になったという情報が送られ、

Activityが再起動されます。再起動され、onCreateが呼ばれるものの、

すでにスリープ状態に入っているため、即座にonPause()が呼ばれます。

もう一度電源ボタンを押し、アプリが開かれると、向きが変わるため、

またもやActivityが再起動されます。

 

これを、電源ボタンをかちかちっと素早くオンオフを行うと

これらの処理がなぜか混ざってしまい、

Activityが複数起動させられた状態になってしまった。

・・・という認識です。

間違っていて、「なにいってんだこいつ」と思われた方は

コメントお願いします。

 

ちなみに8時間もかかってしまった原因は、

音が被る原因が、プログラム上にあるのだと思って、

音再生クラスやらスレッド周りやらを、片っ端から変えてみたり調べたりしていたことが原因です。

-未分類

執筆者:


comment

メールアドレスが公開されることはありません。

関連記事

no image

今度は気管支ぜんそくになりました・・・

状況 最初は風邪を引いただけだと思っていました。 ※もしかすると、風邪から併発したのかもしれません。 ただの風邪なので、そこまで症状は重くなく、 いろいろとやるべきこともあったため、休養したりはせずに …

苺の実ができそうです

庭の畑の苺の一部が実になっていました。 この苺は何年か前にふと思い立って、小さな苗を3つほど植えたものですが、 水遣りもほとんど忘れていたというのに、雨水でたくましく育ち、 畑の半分を埋め尽くすほどま …

ガチャガチャモンスターズ モンスター数130突破

現在制作中のガチャガチャモンスターズのモンスターの種類が 正確には、136種類くらいまで増えました。   予定では150種類以上にする予定のため あと少しです。  

no image

さくらんぼー

こんにちは。いこわーふなのです。   庭にさくらんぼの木が植えてあるのですが、 その木が、今年は大繁盛のようで、異常なほどに実をつけていました。   今年のさくらんぼは小さめで酸っ …

no image

今やっているスマホゲーム

前は色々やっていたのですが スマホの容量が小さいため 容量の多いゲームは5個くらいしか まともに入らないので だいぶ厳選されてしまいました。   今はこんな感じです。 [にゃんこ大戦争] 何 …

はじめまして。
ikosamiと申します。
会社でも個人でゲームを作っている、
ゲームプログラマーです。

アプリ一覧はこちらです。
ダウンロードしてくれると
うれしいです。

ads

  プロフィール  PR:無料HP  ちゅるん カラコン  グラフィックデザイン 専門学校  タイヤ 新品  中古ホイール 青森  タイヤ 12インチ  建築 夜間 専門学校  FUCHS  パワーストーンの販売  心理 東京 大学  株エヴァンジェリスト 口コミ  タイヤ 履き替え 富山市  名簿販売