たぶん週刊「今週の進捗」

1週間に勉強したことや実装したことをネタに、週に1回(主に土日に)更新していく予定です。「多分」なので、臨時休刊があってもご海容ください。

プロつく計画6:盆休み中の進捗

盆休みで完成させたかったけど無理だったよ…

Serviceによる位置情報取得のバックグラウンド処理

アプリがバックグラウンドでも、onLocationChangedが有効で 位置情報を取得できるようになりました。

バインドの有無のServiceの起動方法の違いがよくわかってない。

ServiceからのUI更新

これでほぼできたようなものだ、と思ってたらまだ問題がありました。 なんでも、「ServiceからはUIは更新できない」らしい…

というわけで、BroadcastRecieverでActivity - Service間でデータのやり取りをすることに。 これもまぁできるようにはなったんですが…

で、今

build.gradle を変なふうにいじってしまい、ちゃんとビルドできなくなってしまいました…

どうしようこれ…

プロつく計画6: Serviceクラスを使ったコードをビルドする

例によってこちらを参考に、Serviceを使ったバックグラウンド処理の実装を進めています。

blog.oukasoft.com

試しにService側に適当なコードを書いてちゃんとServiceが呼び出されているか確認しようとしましたが、 動いていないもよう。

何が悪いんだろう?

メモ:アクティビティがレンダリングされない

acitivity_main.xml の Design タブを開いても、 以下のようなエラーが出てレイアウトがレンダリングされない。

|| Use the Theme combo box above the layout to choose a different layout. ||<

原因:ソースファイルが間違っているとかそういう問題ではなく、 レンダリング画面上部のレンダリング設定のテーマ(左右に区切られた円)が間違っていただけだった

プロつく計画6:Service クラスを使ったコードを書いてみる

ここを見ながらServiceでバックグラウンド処理をするプログラムを書いていました。

blog.oukasoft.com

なるほどと思いながら書きながら、 ServiceConnectionとはなんぞや、 リスナはどういう処理を書くべきか、 バックグラウンドで行いたい処理は何に書くべきか、 というのが気になってきた。

というわけで、次はこれらを調べながら書いてみようと思います。

プロつく計画6:6.0向けのバックグラウンド処理を考える

やはり実機(6.0)で動くように作ったものを参考にした方がいいのではと思い、 参考になりそうなのをいろいろ探してみた。

developer.android.com

[Android]アプリを閉じても常駐してバックグラウンドで処理をするサンプル#tryService00 | サンプルプログラム工場

【Android】サービス(Service)を使ってバックグラウンド処理をする(1) | 桜花満開/テンシホタル

ざっと目を通した感じでは、Serviceを使うのが良さそう? で、Serviceを常駐させるにはkillされないためにforegroundで動かす必要があるとかなんとか。

プロつく計画6:バックグラウンド処理のサンプルコードを読解する

アクティビティ図を書きながら、サンプルコードを解読していました。
Serviceが増えてクラスが2つになるから、結構大規模な修正になるかと思ってたけど、そうでもない?
次回はService側のソースコードの解読をしたい。

メモ

  • git status
  • -- android:name
  • Intent

プロつく計画6:バックグラウンドでアプリを動かす

バックグラウンド処理の実装の参考にさせて頂くのはこちらです。

[Android] バックグラウンドでGPSログを取り続けるには

なんだか8.0からバックグラウンド処理が厳しくなっているようで…世知辛い
(デプロイするわしの実機は6.0だけど)

どうやらServiceクラスを継承する必要があるようだ。

developer.android.com

またクラス図やアクティビティ図を書いたりしよう。

蛇足

f:id:ZeitungM:20180716203143p:plain

東ゲ部にて、UnityでAKAZAのモデルをシーンで使ってみたりしてました。
そのままだとユニティちゃんのように動いたりはしないようだ…

AKAZA って「アーカーシャ」って読むんですね。 うろ覚えだったので Agatha って綴ったりしてました。