Android Support Library のよくあるクラッシュ その1「安全な Fragment Transaction の実行」

 

フラグメントのトランザクションはアクティビティ内で、それの追加、削除、入れ替えで利用されます。
大抵、フラグメントのトランザクションは、アクティビティの onCreate()メソッドか、ユーザ処理に反応して実行されます。

 

しかし、アクティビティが再開されるとき、フラグメントのトランザクションがコミットされている場合があります。

次のようなクラッシュです。

java.lang.IllegalStateException: Can not perform this action after onSaveInstanceState
at android.support.v4.app.FragmentManagerImpl.checkStateLoss(FragmentManager.)
at android.support.v4.app.FragmentManagerImpl.enqueueAction(FragmentManager.)
at android.support.v4.app.BackStackRecord.commitInternal(BackStackRecord.java)
at android.support.v4.app.BackStackRecord.commit(BackStackRecord)
at android.support.v4.app.DialogFragment.show(DialogFragment)

 

フラグメントアクティビティがバックグラウンドに置かれたときは、FragmentManagerImpl の mStateSaved フラグが trueに設定されます。

このフラグは状態(state)の損失があるかどうかを確認するために利用されます。

トランザクションをコミットしようとしたときにこのフラグがtrueの場合、上記のように IllegalStateException がスローされます。

状態の損失を防ぐための onSavedInstanceState() が呼ばれた後に、フラグメントトランザクションはコミットすることができません。

このクラッシュが発生する理由のうち、状態(state)がリストアされるときにフラグが false に戻ってないときに onResume() が呼ばれていることがあります。

このようなクラッシュを防止するには、アクティビティのonResume() 内での フラグメントトランザクションのコミット避けるとよいです。

その代わりに、onResumeFragment() を使いましょう。これが適切な状態でフラグメントと対話するための推奨されるアプローチです。

Android Support Library のよくあるクラッシュ その2「AsyncTasks と Configuration 変更」 Android Support Library のよくあるクラッシュ その2「AsyncTasks と Configuration 変更」


パソコンの Google Playにてアプリの「インストール」で端末名が表示されない場合

いままでずっと、
パソコンでブラウザでみるGooglePlayStoreから
アプリを端末にインストールするときに
端末が表示されていませんでしたよ、
こんなかんじで。

アプリをインストールしたいので、インストールを押す。

KM_Plasticine_widgets_Lite_-_Google_Play_の_Android_アプリ 3

昔使っていた端末だけが表示される。

KM_Plasticine_widgets_Lite_-_Google_Play_の_Android_アプリ

現在使っている「NEXUS4」が表示されません。

ずっと、こんなかんじで、パソコンの「インストール」ボタンを押すことによる端末へのインストールができなかったのですが。

どうやら、端末の「Playストア」アプリのデータを一度削除すれば可能になるようです。

手順。

続きを読む >>


LINE で ID教えるくらいなら「登録URL」を教えたほうが早くね?

チャラいかんじで

「ID教えて〜♡」

とか言ってる場合じゃなかったのですね。

【LINE小技】1タップするだけで、友だち登録できるURLの作り方。(昼刊ニュース) - たのしいiPhone! AppBank 【LINE小技】1タップするだけで、友だち登録できるURLの作り方。(昼刊ニュース) - たのしいiPhone! AppBank

結局は、以下のようなURLをLINEアプリ上で取得して
送ってあげればいいだけのことだった、とか。

http://line.naver.jp/ti/p/XXXX

かんたんな手順

LINE「友だち追加」から「アドレス帳」をタップ。

20131004-161007

電話帳に登録している人の一覧がでるので、
だれでもいいので右の「招待」ボタンをタップ。
(※後で「メール送信」をしなければ招待メールは送信されないので)

20131004-161039

「E-mail」を選択して、
インストールしているメールアプリを起動。

20131004-161020

20131004-161114

メールの編集画面が表示されるので、
「登録URL」(http://line.naver.jp/ti/p/XXXX)
の部分をコピーする。

20131004-161156

このコピーした「登録URL」を
メールやカカオトークなどに貼り付けて
ともだちに教える。というようなかんじで。

いちいち面倒くさいので

あたしは、辞書登録しています。
よみを「らいん」で変換しています。

20131004-161326-2

20131004-161428

とかいいつつ、
以下なかんじで、
すでにみんな知ってたとゎ。ワロタ。

続きを読む >>