我是Android编程和Android应用程序的新手。
我有2支球队--A和B。
团队A 我有一个活动A ,其中我有3个ImageView来从服务器放置图像。每当团队B 的任何用户将图像上传到服务器时,我都希望从服务器下载图像并将其放在活动A 中的ImageView上,并显示的通知新图片在这里。
目前,我能够从服务器下载图像并能够手动将它们放在ImageView上,但我想要一个服务,这将为此不断运行。
我google了很多,但找不到这个过程的任何好例子。请帮帮我。
我想使用服务
**我正在使用Volley进行网络连接
感谢。
答案 0 :(得分:0)
当您获得推送通知以更新活动时,只需使用LocalBroadcastManager
即可。仍然需要服务,请尝试使用以下链接。
答案 1 :(得分:0)
嘿使用firebase进行通知以获取图像更新。获得通知后,触发广播并将数据发送到您的活动以更改UI。 在您的情况下,不应使用服务,因为您通过通知从服务获取数据。 请让我知道我可以进一步帮助你。 好你正在使用Volley进行网络操作。 使用Picasso进行图像加载
编译'com.squareup.picasso:picasso:2.5.0'
答案 2 :(得分:0)
简单创建一个类,并通过
进行扩展Service
并onStartCommmand写下凌空代码以下载图像并在volley的
中onResponse
方法发送
local broadcast
通过此广播更新UI
答案 3 :(得分: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);
}
};
}
现在服务类
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);
}
}