カテゴリー:
IDE
閲覧数:564 配信日:2012-01-23 00:00
アクティビティ
・Androidの画面に相当し,ユーザが操作する画面と操作に対する処理を行う
・画面を持つアプリは,必ずアクティビティを持つ
同じ画面に相当するウィンドウとの違い
・状況に応じて分岐する遷移状態を持つ
・インスタンスの保存・復帰する仕組みを持つ
・Android OSのタイミングで,強制終了・再起動される
サンプルアプリを修正
・アクティビティの動きを確認するために,Dalvik Debug Monitor(以下,ddms)を利用
・ddmsは,SDKフォルダ以下のToolsフォルダに収録されているので,ダブルクリックで起動(Windowsは,ddms.bat)
▼D:/Android/android-sdk/tools/ddms.bat
ddms
・名前の通りアプリのデバッグに活用できる
・ソースコードに,以下のコードを追加すると,ddmsのログウィンドウにデバッグメッセージを表示
Log.d( "SkeletonActivity", "onPause" );
Eclipseを起動して,パッケージエクスプローラーのSkeletonActivityからSkeletonActivity.javaを選択して,コード修正
//Logクラスをインポートしないとエラーとなるので,以下のクラスをインポート
import android.util.Log;
@Override
protected void onResume() {
super.onResume();
Log.d( "SkeletonActivity", "onResume" );//ddmsのログウィンドウにデバッグメッセージを表示
}
@Override
protected void onPause() {
super.onPause();
Log.d( "SkeletonActivity", "onPause" );//ddmsのログウィンドウにデバッグメッセージを表示
}
起動
・パッケージ・エクスプローラーから「SkeletonActivity」を選択して,[実行]メニューの[実行]を選択
・[次を実行]ダイアログが表示されるので,一覧から[Android Application]を選択して[OK]をクリック
エラー
・contains error(s)と表示されたら、コードに誤りがある
・修正後、再度実行
ddmで確認
・「onResume」と「onPause」が、右下ウインドウに表示されることを確認
ddmメッセージをフィルター
・SkeletonActivityが出力したメッセージを探すのが面倒なので,メッセージをフィルターする機能を使って,表示メッセージを絞り込む
・フィルターの追加は,画面左下ログペインの「+」をクリック
・[by Log Tag]には,コードで指定したTagを指定する
・ここでは、連載通り、「Filter Name」と[by Log Tag]に「SkeletonActivity」と入力
ddmsを使って動きを確認
・「onResume」…「SkeletonAPP」が最前面に表示されている状態
・「onPause」…「SkeletonAPP」が最前面に表示されていない(裏に回っている)状態。最前面にはメニューなど別の画面が表示されている状態
・実際にエミュレーターを動かしながら、ddmメッセージが、「onResume」から「onPause」等へ切り替わるタイミングを確認していく
※アクティビティが裏にあり「onPause」の状態で,他のアプリから大量のメモリが要求されると,Android OSが背面のアクティビティを強制終了する可能性がある。強制終了したアクティビティが復帰の時は「onResume」からではなく「onCreate」からとなり,一から起動された場合と同じ遷移になる。これは,アプリを開発するうえでは,大きなポイントになる
リソース管理のコツは?
アプリによって,リソース管理方法は異なる
<例>
・1画面,1アクティビティとする
・強制終了される前提でリソースを扱う
・アクティビティを跨いでリソースを使用しない