スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Galaxy S(SC-02B)ちゃんの挙動がおかしい

他の端末では問題ないのに、SC-02Bだけ挙動がおかしいのでActivityの遷移のログを取ってみた。

処理の流れ

カメラを呼び出す⇒戻ってくる

っていうだけ。


▼Xperia acro HD SO-03D (正常系)
: D/[onStop](17309): ***
: D/[onRestart](17309): ***
: D/[onStart](17309): ***
: D/[onResume](17309): ***



▼Galaxy S SC-02B (異常系)

: D/[onStop](6821): ***
: D/[onDestroy](6821): ***
: D/[onCreate](6821): ***
: D/[onStart](6821): ***


: D/[onResume](6821): ***
: D/[onStop](6821): ***
: D/[onDestroy](6821): ***
: D/[onCreate](6821): ***
: D/[onStart](6821): ***
: D/[onResume](6821): ***



SO-02BはすぐにonDestory()するんかね……orz

他の端末だとうまくいくのにムキー
スポンサーサイト

showDialogさんとonCreateDialogさんの関係

onCreateDialogメソッドでDialogをフィールドに保持させて
アクセスしようと書いてたらなぜかぬるぽが出て詰まったのでメモメモ。


以下のようなonCreateDialogメソッド(もちろん改変してます)で生成したdialogをフィールドに保存して


@Override
protected Dialog onCreateDialog(int id) {
Dialog rtnDialog = super.onCreateDialog(id);

mDialog = rtnDialog

return rtnDialog;
}

1回目のshowDialogメソッド⇒dismissDialogメソッドは問題なかったんだけど、
同じ処理の流れでshowDialogメソッド⇒dismissDialogメソッドをやるとなぜかぬるぽで怒られる。

なんでだろうなーってログを出してみたところ




▼1回目
D/[showDialogメソッド呼び出し前](2350): dialog is null
D/[onCreateDialogメソッド処理の最後](2350): dialog is not null
D/[showDialogメソッド呼び出し後](2350): dialog is not null
D/[dismissDialogメソッド呼び出し前](2350): dialog is not null
D/[onDismissメソッド処理の最後](2350): dialog is null
D/[dismissDialogメソッド呼び出し後](2350): dialog is null

▼2回目
D/[showDialogメソッド呼び出し前](2350): dialog is null
D/[showDialogメソッド呼び出し後](2350): dialog is null
D/[dismissDialogメソッド呼び出し前](2350): dialog is null
D/[onDismissメソッド処理の最後](2350): dialog is null
D/[dismissDialogメソッド呼び出し後](2350): dialog is null



こんな感じだった。

ちょっとググってみると「onCreateDialogメソッドは一回しか呼ばれないよー」って書いてあった。

dialogを保持するならonPrepareDialogメソッドでやりましょうっていう感じかな。


仕様嫁カスっていう話ですよねすいませんごめんなさい><

ListPreferenceで前回選択されたものの変更の方法

ListPreferenceで前回選択されたものの変更の方法

ListPreference#setValue(String)で変更が可能みたい。

super.onDialogClosed(positiveResult)してしまうとvalueが変わってしまうので、
その前に前回値を保持しておく必要があるみたい。

ちょっと情報を探したけど載っていなかったのでメモメモ

壁紙をスライドさせずに固定するには

アプリから壁紙を設定し、固定する方法に躓きました。

ググっても情報が出てこなかったからメモメモ。


壁紙の設定はWallpaperManager.setBitmap(Bitmap bitmap)とかsetStream(InputStream data)とかを利用する。

WallpaperManager.suggestDesiredDimensions (int minimumWidth, int minimumHeight)にて固定する。

引数に画像のサイズをセットすると実現できた。


ただし、横長の画像はスライドできてしまったので、縦長の画像のみっぽい?

端末起動時に処理を走らせたい

気が付いたらこんだけ期間空いてた(;'ω')

端末起動時に処理を走らせたい時に詰まったのでメモ



▼BroadcastReceiverクラスを継承したレシーバーを作成する


▼AndroidManifest.xmlに以下のことをする

・レシーバーを「application」タグの中に追加する

・パーミッションに「android.permission.RECEIVE_BOOT_COMPLETED」を追加する

・Application Nodesの子要素に「intent-filter」をつけ、孫要素に「android.intent.action.BOOT_COMPLETED」を追加する


▼レシーバークラスのオーバーライドした「onReceive」メソッドにて以下のように受け取る

public void onReceive(Context context, Intent intent) {


String intentAction = intent.getAction();


if(Intent.ACTION_BOOT_COMPLETED.equals(intentAction)){

//ここに端末起動時の処理を記述すればOK

}

}

 | HOME |  » ▲ page top


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。