liguofeng29’s blog

個人勉強用ブログだっす。

Android

AndroidのContentProvider - SMS発送を監視する

AndroidはContentObserverを提供し、ContentProviderのデータ変更を監視する。 SMS発送を監視するサンプル (サンプルではActivityですが、Activityを起動しないと監視できないので、現実的ではない。 Serviceで実装すべきである) <uses-permission android:name="android.permission.READ_SMS"/> package com.example.lig</uses-permission>…

AndroidのContentProvider - システムのContentProviderを使って連絡先を登録する

Android自身は大量のContentProviderを提供してあり、それぞれquery(),insert(),delete(),update()などを実装してある。 Android連絡先のUri ContactsContract.Contacts.CONTENT_URI : 連絡先管理Uri ContactsContract.CommonDataKinds.Phone.CONTENT_URI : …

AndroidのContentProvider - ContentProviderサンプル

実装の流れ ContentProviderサブクラス実装 AndroidManifest.xml登録 ContentResolverサブクラス実装 実行 package com.example.liguofeng.contentprovidersample; import android.content.ContentProvider; import android.content.ContentValues; import a…

AndroidのContentProvider - ContentProviderの概要

ContentProviderはAndroidアプリの間でデータやり取りを行うために用意されてある標準APIである。 データ取得と提供 Androidアプリのデータ提供は、ContentProviderを利用し、Uri指定で提供する。 Androidアプリのデータ取得は、ContentResolverを利用し、Ur…

AndroidのIntent - Intentを使用してTabページを作成する

Tabページを追加する際のTabHost.TabSpectのメソッドは setContect(int viewId) - id指定のViewをTabページにする setContent(Intent intent) - Intentに対応するActivityをTabページにする サンプルコード TabActivity1,TabActivity2,TabActivity3と対応す…

AndroidのIntent - Flag属性

FlagはIntentに対して制御を追加する。 addFlags()で追加する。 常用Flag FLAG_ACTIVITY_BROUGHT_TO_FRONT このFlagで起動したActivityが既に存在する場合、Activityキューから前面に出す。 FLAG_ACTIVITY_CLEAR_TOP このFlagはsingleTaskモードで起動したAc…

AndroidのIntent - Extra属性

IntentのExtraはAction間のデータやり取りで利用される。 Extra属性値はBundleオブジェクトである。 サンプルコード

AndroidのIntent - Data属性とType属性

Data属性はAction属性にデータを提供する。 特性: Data属性値はUriオブジェクトである Uriの形式 scheme://host:port/path 例:content://com.android.contacts/contacts/1 Type属性はData属性が指定したUriのMINEタイプを指定する。 abc/xyzのフォーマット…

AndroidのIntent - Action,Categoryを指定してホームに戻る

package com.example.liguofeng.intentsample; import android.app.Activity; import android.content.ComponentName; import android.content.CursorLoader; import android.content.Intent; import android.database.Cursor; import android.net.Uri; impo…

AndroidのIntent - Actionを指定して連絡先を取得する

Intentを通して自分アプリ以外、システムActivityを起動することも可能です。 適切な権限を設定し、Adnroid内部で提供している大量のAction、Categoryの定数を利用すればできる。 Intentの定数 http://developer.android.com/intl/ja/reference/android/cont…

AndroidのIntent - Component属性

IntentのComponent属性はComponentNameオブジェクトを設定し、 どのコンポーネントを起動するかを指定する Componentのコンストラクタ ・Component(String pkg, String cls) ・Component(Context pkg, String cls) ・Component(Context pkg, Class cls) Inte…

AndroidのIntent - ActionとCategory

Action属性は抽象的な振る舞いである。 これは、Struts2のAction処理後、SUCCESSを返すと似ている。 使用流れ ① AndroidManifest.xmlのAcvivityのAction属性、Category属性を設定する ② ActivityでIntentにActionとCategoryを設定する ③ IntentでActivityを…

AndroidのIntent - 概要

Intentは日本語で「意図」という意味である。 ActivityからActivity(Service, BroadcastService)を起動する時に直接起動するのではなく、Intentで意図(どのActivityを起動)を表して起動する。 Androidの重要なコンポーネントであるActivity、Service、Broadc…

AndroidのFragment - LifecycleとCallback

AndroidのFragment - Fragment生成&Activityとの通信

サンプル概要 Activityは二つのFragment 1. BookListFragment - 本リストを表示する 2. BookDetailFragment - 本の詳細を表示する を含み、本をクリックした際にその詳細が表示される。 作成手順 ① BookContent(Bookモデル含む)を作成する ② BookDetailFra…

AndroidのFragment - 概要

FragmentはAndroid3.0から導入した新しいAPIである。 Fragmentは言葉の通り断片の意味でActivityの断片である。 目的 タブレットの出現により画面が大きくなり、 スマホより多くの部品を一つの画面に配置できるようになったからのである。 Fragmentの特性 Fr…

AndroidのActivity - LauncherMode

Andoridはアプリ起動時には 1. Taskを生成 2. アプリの入り口Activity起動(AdnroidManifest.xmlのMAIN指定されたもの) AndroidはTaskについてAPIを提供してないため、 開発者はTaskのアクセスすることができなく、 ただActivityのgetTaskId()メソッドで所在…

AndroidのActivity - LifecycleとCallback

AndroidのActivity - Activityからのデータ受け取り (Bundle)

MainActivity.java package com.example.liguofeng.responsefromactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android…

AndroidのActivity - Activityへのデータ渡し (Bundle)

MainActivity.java package com.example.liguofeng.requestdatatoactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import androi…

AndroidのActivity - Activityの起動と終了

MainActivity.java package com.example.liguofeng.startandfinishactivity;import android.app.Activity;import android.content.Intent;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import andro…

AndroidのActivity - LauncherActivityとExpandableActivity

①LauncherActivity継承クラスをつくる MainActivity.java package com.example.liguofeng.launcheractivitytest;import android.app.ExpandableListActivity;import android.app.LauncherActivity;import android.content.Intent;import android.preference.…

AndroidのActivity - 概要

ActivitiyはWebアプリにおいてのServletと似ている。 Webアプリにおいて複数のServletが存在し、 Servlet(JSPの本質もServlet)は主にユーザと情報のやり取りを行い、情報を表示する。 Activityは いつインスタンス生成されるか、 Activityのメソッドはいつ呼…

Androidのイベント処理 - AsyncTask

サブスレッドがUI更新できないため、Androidが提供しているソリューション。 1. Handler 2. Activity.runOnUiThread(Runnable) 3. View.post(Runnable) 4. View.post(Runnable, long) Handler以外は少し実装が煩雑である(と聞いた・・) AsyncTaskは簡易方法…

Androidのイベント処理 - Handler仕組みの詳細

Handlerが動作するために必要なコンポーネント Message - Handlerが送受信&処理する対象 Looper - loopメソッドでMessageQueueのメッセージを取得し、Handlerにメッセージを渡す - loopメソッドは無限ループ - スレッド毎に一つのみのLooper対象をもつ。 - …

Androidのイベント処理 - Handler

パフォーマンス面の考慮でAndroidのUI操作はスレッドセーフではない。 これによって複数のスレッドでUI操作が行われるとスレッドセーフの問題が発生する。 これを解決するためにAndroidは一つのルールを決めてある。 「UIスレッドのみActivity内のUIを変更で…

Androidのイベント処理 - システム設定変更を検知する

システム設定情報変更の検知は ①onConfigurationChangedメソッドをOverrideする ②AndroidManifest.xmlのActivityのandroid:configChanges属性を設定する 属性値は(脱字あるかも) mcc,mnc,locale,touchscreen,keyboard,keyboardHidden, navigation,orientit…

Androidのイベント処理 - システム設定情報取得(Configurationクラス)

Configurationクラスはデバイスの設定(ユーザ毎の設定、システム設定を含む)情報を表している。 Activity内では、下記方法でシステムのConfigurationオブジェクトを取得できる。 Configuration config = getResource().getConfiguration(); サンプルコード…

Androidのイベント処理 - Callbackによるイベント処理

① Viewを継承してコンポーネントを作成 MainActivity.java package com.example.liguofeng.followmeevent;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.uti…

Androidのイベント処理 - タグにリスナーを設定する方法

① タグにリスナー設定 activity_main.java <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> </linearlayout>