カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

バックグラウンドのサービスから、終了通知を受け取る

IntentServiceでバックグラウンドにて処理を実行し、
完了の通知を受け取るにはブロードキャストレシーバーを使用して実現できます。
IntentFilterとBroadcastReceiverを使って、アクティビティとサービス間で通信します。

IntentServiceを利用するためのマニフェストへの記述

<application ...>
    <service android:name="MyIntentService"></service>
</application>

まずは、アクティビティ

[HelloActivity.java]

import android.app.Activity;
import android.os.Bundle;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.BroadcastReceiver;

public class HelloActivity extends Activity {
  IntentFilter intentFilter;
  MyBroadcastReceiver receiver;

  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    startService(new Intent(getBaseContext(), MyIntentService.class));

    receiver = new MyBroadcastReceiver();
    intentFilter = new IntentFilter();
    intentFilter.addAction("MY_ACTION");
    registerReceiver(receiver, intentFilter);
  }
}

次に、IntentServiceクラス
続きを読む…»

17,761 views

HTTP接続でファイルをダウンロード

HTTP接続で簡単なテキストファイルのダウンロード

【必要なインポート宣言】

import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;

続きを読む…»

6,322 views

自動終了してくれる非同期サービス

時間のかかる処理を非同期で実行するためのクラスIntentServiceを利用します。
メインスレッドとは別のプロセスで処理が実行されます。
これはメインのActivityに依存せず処理をするので、Activityが終了しても処理が
終了するまで続きます。 続きを読む…»

3,926 views

ファイル入出力 [Android]

Androidでは、アプリケーション毎に専用のディレクトリが設けられています。
アプリケーション毎に「/data/data/パッケージ名」となっていて、
更にそれ以下に以下のように領域が分かれています。

databases データベースの保存
shared_prefs 設定ファイルの保存
files ファイルの保存

今回はファイルの入出力なので、「files」ディレクトリを利用します。
アクセスする際はファイルまでのパスは不要です。

続きを読む…»

3,880 views

データベースの内容をListViewに表示 [Android]

ListAdpterを使って、データベースの内容を一括で簡単にリスト表示
CursorとListAdpterを組み合わせて使うときは、Cursorオブジェクトに「_id」列を含んでいないといけません。
続きを読む…»

18,533 views