2010-11-23 21 views
0

私はAndroidには初めてですサービスからアクティビティのコンテンツを制御する方法は?

誰でもこの例/ヘルプを提供できますか?

たとえば、アクティビティ上のTextViewのコンテンツがサービスによって自動的に変更されたことがあります。

私はすでにサービスを稼働させていますが、アクティビティクラスで使用できるリスナーはありますか?

答え

+0

サービスのためのonActivityResultオーバーライドのようなもの – ZiGi

+0

サービスマニュアルでサービスと通信する方法の広範な例があります:http://developer.android.com/reference/android/app/Service.htmlあなたは読んでいましたか?それ? –

答えて

1

ZiGi

は、上記のようにApplicationクラス

class MyApplication extends Application { 

    private TextView textView; 

    public String getTextView(){ 
    return textView; 
    } 
    public void setTextView(TextView textView){ 
    this.textView = textView; 
    } 
} 

class MyActivity extends Activity { 

    @Override 
    public void onCreate(Bundle b){ 
    ... 
    MyApplication myApp = ((MyApplication)getApplicationContext()); 
    TextView textview = myApp.getTextView(); 
    ... 
    } 
} 

設定されたグローバルリソース(つまり、サービスを含む全アプリケーション・コンテキストで使用されます)を見て、あなたが行われ&を持っています!

+0

こんにちは、お返事ありがとう、実際に必要なのは、リスナーのようなアクティビティのコード行をトリガするものです。サブアクティビティのonActivityResultのようなものですが、サービスの場合は – ZiGi

+0

@ZiGiあなたがしたいもののハック終了するには、その変数(上記のコードで説明したグローバル変数)をチェックし続け、そのメソッド(またはコード)を実行するスレッドをアクティビティに配置します。アクティビティとサービスの間のコミュニケーションの公式な方法はそれらを拘束していますが(これは私にとって厳しい仕事だと思います)、http://developer.android.com/reference/android/app/Service.htmlをチェックしてください#onBind(android.content.Intent) – 100rabh

+0

http://developer.android.com/reference/android/app/Activity.html#onNewIntent(android.content.Intent)もチェックしてください。これも役立つ可能性があります。アクティビティにデータをインテントし、コードをonNewIntentに配置する – 100rabh