質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

Q&A

解決済

1回答

2624閲覧

MainActivity内のAnimationのマルチスレッドでの操作についての質問です。

kaaa

総合スコア29

Android

Androidは、Google社が開発したスマートフォンやタブレットなど携帯端末向けのプラットフォームです。 カーネル・ミドルウェア・ユーザーインターフェイス・ウェブブラウザ・電話帳などのアプリケーションやソフトウェアをひとつにまとめて構成。 カーネル・ライブラリ・ランタイムはほとんどがC言語/C++、アプリケーションなどはJavaSEのサブセットとAndroid環境で書かれています。

0グッド

0クリップ

投稿2015/05/18 08:36

編集2015/05/19 02:29

MainActivity内のAnimationのマルチスレッドでの操作についての質問です。

お世話になっております。自分の力で解決出来ない問題があり、お力をお借りしたい次第でございます。
application.classの方からMainActivity内のAnimationを操作したいと考えております。

その場合、Animationは、シングルスレッドでしか操作できない為、マルチスレッドの場合、ハンドラーが必要と分かったのですが、ハンドラーを利用したAnimationのコントロール方法がわかりません。
どのように、handlerは記載すべきものなのでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

ThreadとHandlerでマルチスレッド処理化する

基本的な使い方はここに載っていますが,確かにちょっとわかりづらいです.
扱い方としては,

  1. UIスレッドで新たにHandlerを生成.
  2. 別スレッドに1で生成したHandlerを渡す
  3. 別スレッドからUIスレッドに渡したい情報をMessageオブジェクトに入れ,それをHandlerにsendMessageで送る
  4. UIスレッドでHandlerがMessageを受け取ると,HandlerのhandleMessageによって情報が処理される

リンク先では新スレッドのrun()がHandlerを持つActivity内にあるので,run()からHandlerを扱っています.
この場合,

  1. このActivity内でHandlerを生成し,そのhandleMessageをオーバーライドしてMessageの数字を引数にstartColorAnimationを起動するようにします.
  2. application.class(これが何なのかよくわかりませんが)に1のHandlerオブジェクトを渡します.
  3. 別スレッドで,application.classでMessageを生成し,Messageにidを表す数を格納し送ります.
  4. これで,3で渡した引数を元にアニメーションを起動できます.

投稿2015/05/18 09:11

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問