2016-08-20 2 views
1

私はAndroidアプリケーションのAndroidプログラミングと作業にとても興味があります。私は活動チーム私はサーバーから画像を配置する3 ImageViewのを持っているためを持っているAとB「Androidでのサービス」経由で画像をダウンロード

-

は、私が2つのチームを持っています。 チームBのユーザーがサーバーに画像をアップロードするたびに、サーバーから画像をダウンロードしてImageViewに配置すると、 アクティビティAと表示され、 という新しい画像はとなります。

現在、私は、サーバーと手動でImageViewの上に配置することができから画像をダウンロードすることができるんだけど、私はこのために常に実行され、このためのサービスをしたいです。

私は多くのことをGoogleで検索しかし、このプロセスのための任意の良い例を見つけることができませんでした。これで私を助けてください。

は私が

おかげネットワーキングのためのバレーボールを使用しています**

サービスを使用します。あなたが活動を更新するためにプッシュ通知を取得するとき

+0

あなたはこのためにGCMまたはFirebaseを使用することができて

local broadcast 

を送ります。 – Shubham

+0

@Shubham通知は大したことではない、私はサービスに固執している。イメージをダウンロードしてImageViewに配置できるサービスを実装するには、どのようにすればよいか知る必要があります。 –

答えて

0

ねえ画像の更新を取得するには、通知のためのfirebaseを使用しています。通知を受け取ると、ブロードキャストをトリガーし、アクティビティにデータを送信してUIを変更します。 あなたのケースでは、通知からサービスからデータを取得しているため、サービスを使用しないでください。 さらにお手伝いできることをお知らせください。 あなたはネットワーク操作にVolleyを使用しています。画像の読み込み

コンパイル ':ピカソ:com.squareup.picasso 2.5.0' の 使用ピカソ

+0

通知はローカルで行われています。新しい画像がアップロードされるたびに、サーバーから画像をダウンロードするためのサービスのコードを記述する必要があります。 –

+0

オハイオ州..私はそれを取得しました..何か問題が起きました。startservice()メソッドを使用してサービスを書き出します。新しいスレッドでサービスを実行します。ウェブサーブを呼び出してデータを取得します。 –

+0

あなたは私の質問を得ました。 OK!今はonCreateCommandの下でWebサービスを呼び出しています。今すぐブロードキャスト経由でアクティビティにデータを送信してください。 **ブロードキャストに関する知識がない –

0

単純なクラスを作成し、拡張

Service 

し、それによってあるonStartCommmand画像をダウンロードするためのボレーコードを記入してください。

onResponse 

方法は、この放送の更新UI今

+0

一例を挙げて説明すると、私はアンドロイドに新しいです。 –

+0

ローカルブロードキャストに? – Shubham

+0

はい、アクティビティにデータを送信するのを手伝ってください。私はブロードキャストの知識がありません –

0
public class LocalBroadcastExampleActivity extends Activity { 
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     // TODO Auto-generated method stub 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.log_list); 

     Button buttonStartService = (Button)findViewById(R.id.button_ok); 
     buttonStartService.setOnClickListener(new View.OnClickListener(){ 
       @Override 
       public void onClick(View v) { 
       // TODO Auto-generated method stub 
       //Register MessageService in Manifest to work 
       startService(newIntent(LocalBroadcastExampleActivity.this, MessageService.class)); 
      } 
     }); 

    } 

    @Override 
    protected void onPause() { 
     // Unregister since the activity is paused. 
     LocalBroadcastManager.getInstance(this).unregisterReceiver(
      mMessageReceiver); 
     super.onPause(); 
    } 

    @Override 
    protected void onResume() { 
     // Register to receive messages. 
     // We are registering an observer (mMessageReceiver) to receive Intents 
     // with actions named "custom-event-name". 
     LocalBroadcastManager.getInstance(this).registerReceiver(
      mMessageReceiver, new IntentFilter("custom-event-name")); 
     super.onResume(); 
    } 

    // Our handler for received Intents. This will be called whenever an Intent 
    // with an action named "custom-event-name" is broadcasted. 
    private BroadcastReceiver mMessageReceiver = new BroadcastReceiver(){ 
     @Override 
     public void onReceive(Context context, Intent intent) { 
      // TODO Auto-generated method stub 
      // Get extra data included in the Intent 
      String message = intent.getStringExtra("message"); 
      Log.d("receiver", "Got message: " + message); 
     } 
    }; 
} 

Serviceクラス

public class MessageService extends Service { 
    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     // TODO Auto-generated method stub 
     sendMessage(); 
     return super.onStartCommand(intent, flags, startId); 
    } 

    // Send an Intent with an action named "custom-event-name". The Intent 
    // sent should 
    // be received by the ReceiverActivity. 
    private void sendMessage() { 
     Log.d("sender", "Broadcasting message"); 
     Intent intent = new Intent("custom-event-name"); 
     // You can also include some extra data. 
     intent.putExtra("message", "This is my message!"); 
     LocalBroadcastManager.getInstance(this).sendBroadcast(intent); 
    } 

} 
+0

このサービスを新しいデータを検索できるように継続的に実行する方法。 –

+0

これまでGCMまたはFirebaseを実装していますか? – Shubham

+0

いいえ、私はそれらに取り組んだことはありません。 –

関連する問題