非同期通信 (AsyncTask)

 

AndroidアプリからサーバーにHTTP通信する場合の備忘録です。
(androidはまだ勉強を始めたばかりで理解が十分でないので、間違っている部分も多々あると思います。
間違いに気づいた時点で修正していくつもりです。)

 

Androidアプリでサーバーと非同期通信処理を行うためには、AsyncTaskを継承したクラスを作成します。
AsyncTaskに用意されている以下のメソッドを必要に応じてオーバーライドします。
(1)onPreExecute()   ・・・ タスク実行前にUIスレッドで実行される。事前準備の処理を実装する。(例:プログレスバー表示)
(2)doInBackground()  ・・・ バックグラウンドスレッドで実行される。実装必須。
(3)onProgressUpdate() ・・・ doInBackGround()でpublishProgress()が呼ばれた場合に実行される。(例:進行状況表示)
(4)onPostExecute()   ・・・ バックグラウンド処理が終了したときに実行される。結果をUIスレッドに反映する処理を実装する。

今回は、サーバーにPOSTして結果をJSONもしくは画像を受信することを想定しているので
レスポンスはどちらでも対応できるようにInputStreamを返却しています。

サーバーと通信を行うクラスは、マルチパート形式に対応しています。
マルチパート形式に対応するためには、以下のライブラリの追加が必要です。
・httpmime-x.x.x.jar
http://hc.apache.org/downloads.cgi ⇒ HttpClient x.x.x (GA) の項目よりダウンロード
(今回私は、httpmime-4.3.3.jarとhttpcore-4.3.2.jarを追加しました。)

非同期で通信してレスポンスを起動元に返却するためにコールバックを定義しています。

(さらに…)

iCloudストレージプラン継続時にStoreクレジット(iTunesカード)は使える!?

 

昨年、iCloudの追加ストレージを購入し、1年経ったので
継続時にも iTunesカードを使って支払えるのか試してみました。

昨年安く購入したiTunesカードのStoreクレジット残高がまだ4000円以上あるので、
これを使いたいと思います。

★iTunesカードが使えるか結論だけ知りたい方はこちら

現在のプランは、20GB(合計25GB)です。
現在のプラン

(さらに…)

UITableView 編集時 削除ボタンが重なる場合の対処

 

※本記事は、旧ブログからの再掲です。

UITableViewに独自にviewを貼付けた場合のcell削除時の削除ボタンが隠れてしまう現象の対処法の備忘録です。

下図のように UITableView の cell に独自に view を貼付け、cell を削除できるように編集ボタンを設置しました。

tableview_del_1

削除しようとして左側の赤丸ボタンが表示された際には、
右にある青い view は押し出されほとんど見えなくなり、 (さらに…)

UIButtonに影をつける

 

※本記事は、旧ブログからの再掲です。

UIButtonに影を付けると立体的に見え、さらにボタンを押した時に少し動くようにすると本当にボタンを押した感覚になります。

今回は背景色を青にしているので、UIButtonTypeCustomを指定しプログラムで角を丸くしています。そのためには、CALayerのcornerRadiusプロパティに角丸の半径を設定します。
(<QuartzCore/CALayer.h>のインポートが必要です)

ボタンに影を付けるには、CALayerのshadowOpacityプロパティに影の透明度(0.00~1.00)、shadowOffsetプロパティに影の表示位置を設定します。
このとき、masksToBoundsプロパティをYESに設定しているときちんと影が表示されません。

ボタンを押下したときにボタンが動くようにするには、ボタンへのイベントを検出し、そのタイミングでボタンを動かす処理を行います。 (さらに…)

定数について

 

※本記事は、旧ブログからの再掲です。

定数についての備忘録です。

整数の定数(列挙型)

整数値をとる関連定数のグループには列挙を使用します。
列挙定数には、自動的に先頭から順番に0, 1, 2,…と1ずつ加算された値が代入されます。
また整数値を代入することも可能です。一部のみ代入した場合には、その後ろは前の値に+1された値が代入されます。

また下記のように書くと、データ型の指定もできます。

(さらに…)