2012年7月20日のブックマーク (17件)

  • Android SDKでキーロック状態を取得する(UsefullCode.net)

    UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. Androidアプリの実行中に今現在画面がロックされているかどうかのロック状態を調べるにはKeyguardManager:: inKeyguardRestrictedInputMode()を使う。trueならロック中、falseならロックされていない。 問題はロック/アンロックの検出。HTC Desireでは下のソースで検出できましたが、Androidエミュレーターでは検出できませんでした。また下のソースではアンロックの検出にフォーカス状態を利用しているので、フォーカスが一定しない

  • Androidで端末がスリープ中でも定期的にバックグラウンド処理を実行する

    結論から言うと、AlarmManagerとPowerManager.WakeLockを組み合わせて使えばよい。 具体的には、まず、AlarmManagerを使用して、定期的にBroadcastのIntentを投げる。AlarmManager.RTC_WAKEUPを指定して、端末がスリープ中でもBroadcastが行われるようにしておく。 public class Foo { private static final long INTERVAL = AlarmManager.INTERVAL_FIFTEEN_MINUTES; public void setBroadcast() { Intent intent = new Intent(this, BarReceiver.class); PendingIntent pendingIntent = PendingIntent.getBroadc

  • [android] AIDLによるプロセス間通信 | xFutures -飽きっぽいマの雑記-

    タイトルにあるとおり、Activity – Service間の通信のお話です。 andoridでは、簡単にActivityからServiceのメソッドを実行することができます。 AIDLファイルにIPCのインターフェイスを記述する Serviceにインターフェイスを実装する ActivityからServiceにBindし、インターフェイスを叩く たったこれだけです。 サンプルとして、テキストボックスに入力された値をServiceで加算するプログラムを作ってみます。 こんな感じ。 まずはAIDLファイルを作成します。他のJavaソースと同じところに、Interfaceを記述したファイルを配置します。拡張子は.aidlですが、中身はまんまJavaです。 package jp.xfutures.android.sample; /** * サービスのインターフェイス. */ interface

  • 加速度センサーの値を取得するサンプル#trySensor00 | サンプルプログラム工場

  • Androidでの常駐型Serviceを使う方法(LocalServiceによる常駐アプリ) | TechBooster

    Androidで常駐型アプリケーションを作成する場合に便利なServiceについてライフサイクル・使い方を解説します。サービスの利用例はステータス通知(Notification)を変化させる等をご確認ください。Serviceを使う(1)では簡単化のため、Remote Messenger Serviceを次回以降として、LocalServiceに特化して解説します。 Serviceのライフサイクル onCreate / onStartCommand / onDestroyの3つの状態遷移 サービスの実行方法によってライフサイクルが異なる サービスの実行方法はContext#startServiceとContext#bindServiceの2種類 startService/stopService Service全般として実行中はServiceからActivityへIntentの発行が可能 サー

  • ゼロから始めるAndroid開発【サービス編】 | Techfirm Android Lab

    前回説明したアプリを作成するため、 今回はその中でも中心的存在となる「Service」の作成をしていきます。 Serviceとは、Activityと異なりバックグラウンドで動作できるアプリの形態です。 まずはServiceを登録するだけの簡単なActivityを書いてみます。 SelfStalkerActivity.java: public class SelfStalkerActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button button = (Button)this.findViewById(R.id.button

  • AndroidのServiceについて - adsaria mood

    Androidのサービスについて、ちょっと調べてみた。 サービス自身を、それを使うActivityと一緒のアプリケーションとして使うローカルサービスと別のアプリケーションとして動かすリモートサービスがあるようだが、今回はローカルサービスについて。 【補足:2010.09.17】 Remote Serviceについては“AndroidのRemote Serviceについて(+作り方)”にメモしておいた。(ただし、Service全般とLocal Serviceについてはここにメモしている。) Androidのページ:http://developer.android.com/intl/ja/reference/android/app/Service.htmlに詳しく書いてある。要点だけを私なりにまとめてみた。(といっても和訳らしきものになってしまったが、和訳するつもりではないので、内容の正確さは

    AndroidのServiceについて - adsaria mood
  • あんどろいどメモ Androidのライフサイクル

    プログラムを作成する上で、ライフサイクルってとても重要ですよね。 こればかりは知らないと、どの状態でどう実装するのか想像することもできませんよね。 あ、想像はできるか・・。ん、知らない事を想像するのは妄想?? というわけで、簡単にAndroidの妄想をまとめて見ました。 ■アクティビティという言葉 Android のインターフェイス、つまり画面はアクティビティというものによって表現されます。 そしてアクティビティは、画面を開いたり、何か行ったり、閉じたりと個々のライフサイクルを持っています。 ■Android のライフサイクル 書籍 初めてのAndroid (気になる方は左のメニューからどうぞ) によると だそうです。 マウス絵むずかしい。 これらの状態が遷移するときに、イベントが起こります。 そのイベントに合わせて、適切なコードを書くことでいろんな事が実現できるわけですね! では、以下に

  • AsyncTaskのサンプル - 私事ですが……

    androidでサーバアクセスなど重めの処理を実行する場合にはAsyncTaskなどで非同期に行う。 このとき、ActivityとセットでAsyncTaskを書いたりする場合もあるが、そもそもActivityとAsyncTaskは生存期間が違う。 裏でAsyncTaskが動いているときに表でサクサクとActivityを切り替え、AsyncTaskが終わった時にたまたま動いていたActivityで何か処理をしたい場合もある。 そういう処理はServiceでやるべきという向きがあるかもしれないが、ひとまずAsyncTaskでやるならこんな感じではないかというのを晒してみる。 AsyncTask内でProgressDialogを出す場合も、この機構にonPauseのタイミングでdismissする部分を組み込むことで「View not attached to window manager」とか言わ

    AsyncTaskのサンプル - 私事ですが……
  • 非同期な AsyncTask をわかりやすく - コードを貼り付けながら。

    なんかよく分かった感がない。なんとなくやってるような気がする。 とりあえず人気関連記事を。 AsyncTaskでバックグラウンド処理を行う - Android Wiki* AsyncTaskでユーザビリティを向上させる | Android Techfirm Lab Developer Blog 〜開発メモ書き系〜:AndroidでAsyncTaskを使ったバックグラウンド処理 いろんな場合があるので,なかなか定型化しづらいように思うので,オフィシャルなリファレンス。 AsyncTask | Android Developers じっくり和訳しながら読んでみる。 使い方 AsyncTaskを使用することをサブクラス化する必要があります。サブクラスでは、少なくとも1つのメソッド(doInBackground(Params...),onPostExecute(Result)とか)をオーバーライド

    非同期な AsyncTask をわかりやすく - コードを貼り付けながら。
  • バックグラウンドスレッドでダイアログを生成してはいけない - Kazzz's diary

    AndroidではUIスレッド上でGUI部品(ウィジェット)にアクセスするのが前提になっているため、他のスレッドでGUIにアクセスするとチェックが入り例外が発生する。 android.view.ViewRoot$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views. これを回避するためにはいろいろな方法があるが、一つはAsyncTaskの派生具象クラスを使ってスレッドでの処理とUIスレッドでのGUI処理を明確に分離することだ。 final AsyncTask at = new AsyncTask() { @Override protected Bitmap doInBackground(String... params) { ret

    バックグラウンドスレッドでダイアログを生成してはいけない - Kazzz's diary
  • AsyncTaskの使い方考察 - プログラマーの脳みそ

    Androidでの開発ではAndroid OSをある種のフレームワークと捉えてその作法に則ってうまく「使われる」プログラムを書かなくてはならない。なのでそのフレームワークがどういう仕組で、どういう流れで僕らの書いたコードを呼び出すのかということを理解することがよい設計に結びつく。と、大風呂敷を広げているが僕もさほどAndroidに精通していないのでこれは努力目標みたいなもんです。 大雑把に割愛して、今回のテーマに関係の深いところをピックアップする感じでいきますか。 テーマのAsyncTaskだけども、要は非同期処理をしたい時に使う。Javaで非同期処理といえばThreadなんだけどもAndroidでは一般にAsyncTaskを使う。AsyncTaskではUIスレッドを使った非同期処理を簡単に(?)実装できるという触れ込み。 UIスレッドとは? そこでまずUIスレッドとは何かを理解せねばなる

    AsyncTaskの使い方考察 - プログラマーの脳みそ
  • 独自リスナー(Listener)を作成する | TechBooster

    Androidにはクリックされた状態を取得するためのonClickListenerなどの便利なリスナーが多くありますが、あるオブジェクトがクリックされた且つ、その他のオブジェクトの状態が変化した場合など、複雑な(あるいはアプリケーション固有の)イベントを取得したい場面がでてきます。 こういった特殊な場合のイベントを通知するために独自のリスナーを作成することができます。 詳細はイカから。 今回はイカの流れでリスナーを作成していきます。 1.EventListenerクラスを継承したInterfaceを作成する(SampleListenerInterface.java) 2.リスナーとしての通知を行うクラスを用意する(SampleNotify.java) 3.リスナーを受け取る(implementsする)処理を実装する(SelfListenerSampleActivity.java) 今回用意

  • Androidアプリで,HTTP通信のPOSTリクエストをする汎用クラス (文字化け無し+非同期タスク) - 主に言語とシステム開発に関して

    AndroidプログラミングのTOPへ 重要なお知らせ: この記事で公開した情報は,AndroidのMVCフレームワーク「Android-MVC」の機能の一部として取り込まれました。 より正確な設計情報や,動作可能な全ソースコードを閲覧したい場合,「Android-MVC」の公式ページより技術情報を参照してください。 AndroidのMVCフレームワーク - 「Android-MVC」 http://code.google.com/p/android-mvc-... Androidアプリ開発時に,HTTP通信でWebサーバに対しPOSTリクエストをするサンプルコード。 ここでPOSTパラメータは,UTF8などのエンコードで日語のマルチバイト文字列を含むとする。 この通信処理を,文字化け無しで正しく扱う。 送信するリクエストヘッダも,サーバから受信するレスポンス内容も,指定した文字コード通

    Androidアプリで,HTTP通信のPOSTリクエストをする汎用クラス (文字化け無し+非同期タスク) - 主に言語とシステム開発に関して
  • AndroidでThreadとHandlerでマルチスレッド処理化する方法 | TechBooster

    AndroidのActivityは描画処理を行うためのUIスレッドしかもたないシングルスレッド設計です。負荷が高い処理、待ち時間が発生する処理(ネットワーク通信をはじめとした非同期通信など)はUIスレッドを圧迫し、アプリケーションのレスポンスに影響します。UIスレッドの負荷を下げるには別スレッドを作成し、仕事を分散させるマルチスレッド処理の実装が必要です。 <2011/6/7 02:00 Message#obtainに関する記述を追加しました。Message#obtainを利用することでより効率的なメッセージ送信が可能です。> <2011/6/7 13:00 volitale修飾子による最適化抑止を追加しました。> 今回はスレッド(java.lang.Thread)とハンドラ(Android.os.Handler)を使って、キューイングを実装します。キューイングとは異なるスレッドからのメッ

  • AsyncTask を利用した非同期処理 - Android 開発入門

    非同期処理と UI の更新 ではワーカースレッドを利用した非同期処理と UI を更新する時には Handler を利用して UI スレッドに対して処理をポストするという点について説明しました。 ここでは、そうしたバックグラウンドでの処理と UI とのやりとりをひっくるめて簡単に操作するための、 AsyncTask クラスの利用方法を説明します。 さらに、ついでに ProgressDialog のキャンセル処理とプログレスバーの表示についても説明します。 ProgressDialog と非同期処理のキャンセル ここで作るサンプルプログラムは次のようなものです。まずはボタンが一つだけあります。 このボタンをクリックすると、下のスクリーンショットのようにプログレスバー付きの ProgressDialog が表示されます。 この進捗が100%になったところで、ダイアログは消えます。また、 BACK

    AsyncTask を利用した非同期処理 - Android 開発入門
  • nakawai’s diary

    AndroidでCursorのデータを一覧表示する場合、CursorAdapterが使用されていました。 このとき、データの更新をViewに反映するということについてフレームワークがなにを提供しているのかがわかりづらかったので、メモとして整理しておきます。 MediaStoreのデータをListViewで表示した場合 ContentProvider経由でCursorを取得し、CursorAdapterで表示するとどうなるか確認します。 そこで今回は、MediaStoreに保存された画像すべてを、ListViewで一覧表示してみます。 (サンプルなので、UIスレッドでクエリを発行しちゃいます) public class SampleCursorAdapterActivity extends Activity { /** Called when the activity is first cr

    nakawai’s diary