Androidで、カウントアプリを作ってます。
12時になったら、その日のカウントの合計をデータベースにセットしたいです。
そのために、コードとしましては、
MainActivityでAlarmManagerを使い、12時になったら、Serviceに移動し、
ServiceからMainActivityのメソッドを呼び、そのメソッドないで、今までにカウントされた数を取得し、データベースにセットしたいです。
しかし、ServiceからMainActivityのメソッドを呼ぶ時にこのようなエラーがでます。
java
1FATAL EXCEPTION: MyResetServiceThread 2 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() 3 at android.os.Handler.<init>(Handler.java:121) 4 at android.app.Activity.<init>(Activity.java:749) 5 at android.support.v4.app.SupportActivity.<init>(SupportActivity.java:31) 6
致命的な例外:MyResetServiceThread java.lang.RuntimeException:Looper.prepare()を呼び出さなかったスレッド内でハンドラを作成できませんとのエラーが出ます。
そこで、Serviceないで、MainActivityのメソッドを呼んでいるところで、Looper.prepare()を呼んだのですが、また、おなじエラーがでます。
java
1 //ここで、メソッドを呼ぶ 2 Handler mainHandler = new Handler(); 3 mainHandler.post(new Runnable() { 4 public void run() { 5 Log.v("hoge", "thread name:" + Thread.currentThread().getName()); 6 7 MainActivity get = new MainActivity(); 8 String a = get.getScore();//Test2クラスメソッド呼び出し 9 Log.v("serviceでやった。:", a); 10 } 11 });
どのようにすれば、MainActivityのメソッドをServiceから呼べるのでしょうか?
Serviceから、MainActivityのメソッドを呼ぶことはできないのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/04/23 14:41
2017/04/23 16:40
2017/04/23 22:51 編集