bindServiceは、ボタンのクリック内部の作業が、のonCreateで動作していない - アンドロイド

StackOverflow https://stackoverflow.com/questions/3628999

質問

私は私が私の活動にバインドしようとしていることはかなり単純なローカルサービスを提供しています。私はCommonsWareで、昨日、このを通じて働いたと彼は私が私がバインドにサービスを取得困難な時期を持っていたとしてまっすぐしまいました。それは私がそう多くの問題を抱えていた理由は、私がサービスにバインドしようとしていたということであったことが判明します:

bindService(new Intent(this, myService.class), mConnection, Context.BIND_AUTO_CREATE);

ボタンをクリックした後に呼び出されていたのボイド方法内部ます。

private void doBindService() {
            bindService(new Intent(this, SimpleService.class), mConnection, Context.BIND_AUTO_CREATE);
            mIsBound = true;
        }

       private OnClickListener startListener = new OnClickListener() {
        public void onClick(View v){
            doBindService();
        }               
       };
私は活動ののonCreateメソッドに私のbindService()の呼び出しを移動したときに

は、それが正常に動作します。 CommonsWareは、その呼び出しは非同期であることについて何かを言及し、私はそれが私の問題が何であったかだかどうかを知るには、Androidのアクティビティの作成について十分に知りません。私は、サービス内のメンバーにアクセスしようとしたときにボタンが私のmBoundServiceないだろうな作業によって、クリックされたとき、私は)(私のServiceConnection内部で呼び出されていた私のonServiceConnection()ことを知っています。

ことができる人、それはボタンクリック内で動作しますが、のonCreate(内部の作業を行いますしない理由)を教えて?

TIA

役に立ちましたか?

解決

thisdoBindService参照内部は両方の場合で同じではありません。 onCreateに呼び出された場合、ボタンのクリックから呼び出された場合、それはActivityへの参照になりますOnClickListenerへの参照になります。明らかに、あなたのサービスは、リスナーをクリックし、ボタンにバインドされたくありません。

thisYOURACTIVITYNAME.thisを変更してみてください、それが助けかどうかを確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top