7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …

Slides:



Advertisements
Similar presentations
5-7 音声の再生 (1)テキストスピーチ A. 手順 音声による英文のスピーチ ・ Android 1.6 以降の実機で可能。 ・ Android では英語であれば エミュレータで可能。それ以前は実機のみ。 ・機種によっては音声がインストールされていない場合があるので、 Android.
Advertisements

山元進.  for 文  while 文  do ~ while 文  文のネスト  break 文  continue 文.
8-4 Google マップの利用 1.地図を表示 ( エミュレータでも可能 ) Android API キーを取得しておくこと。 【 AndroidManifest.xml 】 ・・・
アンドロイドの GUI 作成なんて怖くな い! In 第 5 回勉強会@徳島 / オープンフォース Android 勉強会 at 2010/07/15(sut) 夜子まま.
社会人学習講座 「Javaプログラミング概論」
GridLayout オブジェクト(省略)
創造工学設計I 電子情報工学科4年(前期) 12回目 (09/07/2015) 担当 古山彰一 ac
2.Androidアプリの基礎知識 2-1 Androidのアーキテクチャ
Copyright by Rich & Giro
4月卒研報告              上藤紳也.
5-4 画像の表示 (1)複数画像の表示 A.手順 (基本は5-2(1)Image View参照) ①画像ファイルをリソースに追加
Android:Service 小山 圭.
創造工学設計I 電子情報工学科4年(前期) 8回目 (04/6/2015) 担当 古山彰一 ac
Imageの描画 画像を読み込んで表示すること。 import java.awt.*;が必要。
Applet 岡部 祐典 鈴木 敬幸.
GPSはじめの第一歩 Android編 2009/03/28 山本 慎也.
5-3 図形の描画 (1)図形を表示する手順 ①実画面に表示するクラスを作成する。
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
8-2 センサ関係 1.センサの種類 種類センサの内容 TYPE_ACCELEROMETER 加速度センサ TYPE_MAGNETIC_FIELD 地磁気センサ TYPE_PROXIMITY 近接センサ TYPE_TEMPATURE 温度センサ TYPE_LIGHT 照明センサ TYPE_GRAVITY.
JSFによるWebアプリケーション開発 第11回
Iアプリプログラミング その1  鳥居秀徳.
JAVA.
第2回:Javaの変数と型の宣言 プログラミングII 2007年10月2日.
独習Java ・ 10.6  Hashtableクラス ・ 10.7  String Tokenizerクラス  12月12日    小笠原 一恵.
独習Java ・ 12.1  インターネットアドレス ・ 12.2  サーバーソケットとソケット  12月 19日    小笠原 一恵.
プログラミング実習 1・2 クラス 第 1 週目 担当教員:  渡邊 直樹.
JAVA GUIプログラミング 第5回 ボタンとそのイベント処理.
JSFによるWebアプリケーション開発 第6回
第20章 Flyweight ~同じものを共有して無駄をなくす~
インタフェース プログラミング 第14回 インタフェース プログラミング第14回.
Bridge Pattern
オブジェクト指向入門.
アプレット プログラミング 第10回 アプレット プログラミング第10回.
4.Eclipseの基本操作 4-1 Eclipseの起動
RMI ソフトウェア特論 第6回 /
プログラミング演習3 第2回 GUIの復習.
Stateful Session Beans
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
11.6 ランダムアクセスファイル 11.7 StreamTokenizerクラス
8.1 例外処理 8.2 catchブロックの検索 8.3 throwステートメント 8.4 例外とエラークラス 8.6 独自の例外
Java入門 13.5カラーの使用 13.6テキストの表示                  2003/12/12                   紺野憲一.
UDPマルチキャストチャット                    空川幸司.
オブジェクト指向 プログラミング 第十三回 知能情報学部 新田直也.
日本Androidの会 事務局長 SIPropプロジェクト 代表 グロースエクスパートナーズ 今村 謙之(いまむら のりつな)
EclipseでWekaのAPIを呼び出す
オブジェクト指向 プログラミング 第十四回 知能情報学部 新田直也.
暗号技術 ~JAVAプログラム①~ (5週目)
ソフトウェア制作論 平成30年12月5日.
プログラミング演習3 第2回 GUIの復習.
独習Javaゼミ第10回 セクション1~3 発表者 直江 宗紀.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
ソフトウェア制作論 平成30年11月21日.
パッケージ,アクセス修飾子 2008年4月27日 海谷 治彦.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
JAVA入門後期④ イベント、AWT、の基本構造、スレッド
プログラミング言語論 第十三回 理工学部 情報システム工学科 新田直也.
C#プログラミング実習 第3回.
暗号技術 ~JAVAプログラム②~ (6週目)
Annotation EJB 3.0 コース 第3回 2006年8月4日.
画面への描画 Graphics オブジェクト 紙 ペン Pen オブジェクト Brush オブジェクト 画面のピクセルをカプセル化
ソフトウェア制作論 平成30年11月28日.
オブジェクト指向言語論 第十一回 知能情報学部 新田直也.
Javaとは Javaとはオブジェクト指向言語でJava VM(Java仮想マシン)と呼ばれるプログラム上で動作します。
5-2 基本的なウィジェット (1)Toggle Button A. 配置
値渡しと参照渡しについて.
7.アプリケーションの連携 7-1 インテント(intent) 1.アプリケーションの連携とは
5.基本API 5-1 レイアウト ウィジェットの並べ方を指定するには、 パレットのレイアウト(Layoutでは以下の8種類)を配置する。
5-6 SurfaceView による高速描画 (1)SurfaceViewを使う A. SurfaceView とは
計算機プログラミングI 第5回 2002年11月7日(木) 配列: 沢山のデータをまとめたデータ どんなものか どうやって使うのか
5-5 文字列の描画 (1)基本的な文字列描画 A.手順
Presentation transcript:

7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 … 7-3 サービスの連携 1.サービスとは 画面を持たずに処理を行う【AndroidManifest.xmlへの追加】 …   <service android:name=“.ServiceSample” /> </application> </manifest> Intent it = new Intent(context, ServiceSample.class); it.startService();

2.ペンディングインテントの使用 サービスを後で起動するためのペンディングインテント(Pending Intent)クラスを用いる。 インテントを作成した上で, これをベンディングインテントに渡す。 PendingIntent pIntent = PendingIntent.getService(context,0,it,0);

3.アラームマネージャの使用 後でインテントを起動するためのアラームマネージャ(AlarmManager) ①一定時間後にインテントを発行する。 ②インテントを繰り返す。

アラームマネージャの指定方法 ①アラームマネージャを取得。 ②アラームマネージャでインテントを発行する時間間隔等を指定する。 ③デストロイの状態でアラームマネージャをキャンセルする。

4.通知領域の指定 サービスを利用する場合,他のアプリケーションや ホーム画面に移動しても処理を続ける。 他の画面に移動した場合,サービス停止の方法を 用意しておく必要がある。 通知領域(ノーティフィケーション)を使う。

5.プログラム例 ServiceActivityクラス(その1) package jp.service; import java.util.*; import android.app.*; import android.content.*; import android.os.*; import android.view.*; import android.view.View.*; import android.widget.*; public class ServiceActivity extends Activity { Button bt1, bt2; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); LinearLayout LL=new LinearLayout(this); LL.setOrientation(LinearLayout.VERTICAL); setContentView(LL);

ServiceActivityクラス(その2) bt1=new Button(this); bt2=new Button(this); bt1.setText("開始"); bt2.setText("停止"); LL.addView(bt1); LL.addView(bt2); bt1.setOnClickListener(new ClickListenerProc()); bt2.setOnClickListener(new ClickListenerProc()); } class ClickListenerProc implements OnClickListener{ public void onClick(View v){ Context context=getApplicationContext(); Intent intent=new Intent(context, ServiceSample.class); PendingIntent pIntent=PendingIntent.getService(context, 0, intent, 0); AlarmManager aMan = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); if(v==bt1){ long time=Calendar.getInstance().getTimeInMillis(); aMan.setRepeating(AlarmManager.RTC_WAKEUP, time,10*1000,pIntent); else if(v==bt2){ aMan.cancel(pIntent); stopService(intent);}

ServiceSampleクラス(その1) package jp.service; import java.util.*; import android.app.*; import android.os.*; import android.content.*; import android.widget.*; public class ServiceSample extends Service { NotificationManager nMan; Random r; String[] str={"Good morning!","Good afternoon!","Good night!","Good by!", "See again!","Nice to meet you!","Thank you!","Congratulations!"}; public IBinder onBind(Intent it){ return null; } public void onCreate() { nMan=(NotificationManager)this.getSystemService(Context.NOTIFICATION_SERVICE); r=new Random();

ServiceSampleクラス(その2) public void onStart(Intent intent, int id){ Notification ntf= new Notification(R.drawable.ic_launcher, "Service Sample",System.currentTimeMillis()); Intent i=new Intent(this, ServiceActivity.class); PendingIntent pIntent= PendingIntent.getActivity(this, 0,i,0); ntf.setLatestEventInfo(getApplicationContext(),"Service Sample", "設定画面に移動します",pIntent); nMan.notify(0,ntf); int m=r.nextInt(str.length); Toast.makeText(this, str[m],Toast.LENGTH_LONG).show(); } public void onDestroy(){ nMan.cancel(0);

6.実行例 起動直後 ServiceActivity Term1, Term2に入力 「新規」ボタンクリック 「OK」ボタンクリック ServiceSample Term1, Term2に入力 「OK」ボタンクリック ServiceActivityに戻って Term1の内容を表示 何回か繰り返し