用Android-Studio的IntentService模板快速實現業務需求(實戰)
阿新 • • 發佈:2019-01-24
package com.czz.manager.service; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; import android.content.IntentFilter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import com.czz.manager.R; import com.czz.manager.bean.NewsInfo; import com.czz.manager.bean.WeatherInfo; import java.util.ArrayList; public class TestActivity extends AppCompatActivity { //TODO :③獲得結果之後需要用Broadcast將結果傳送給Activity以更新UI檢視 private static final String NEWS_RESULT = "com.czz.manager.service.RESULT.NEWS"; private static final String WEATHER_RESULT = "com.czz.manager.service.RESULT.WEATHER"; //TODO :④傳送廣播,需要傳入的一些引數 private static final String EXTRA_PARAM3 = "com.czz.manager.service.extra.PARAM3"; private static final String EXTRA_PARAM4 = "com.czz.manager.service.extra.PARAM4"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_test); //註冊廣播,以接收Service通過廣播發送過來的資料 registerReceiver(); //啟動服務 TestIntentService.startActionNEWS(this, null, null); TestIntentService.startActionWEATHER(this, null, null); } private void registerReceiver() { IntentFilter filter = new IntentFilter(); //區分多種廣播 filter.addAction(NEWS_RESULT); filter.addAction(WEATHER_RESULT); registerReceiver(receiver, filter); } private BroadcastReceiver receiver = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { if (intent.getAction().equals(NEWS_RESULT)) { Log.i("mylog", "NEWS廣播接收器中..."); ArrayList<NewsInfo> arrayList = intent.getParcelableArrayListExtra(EXTRA_PARAM3); //獲取到了資料,進行一些UI更新... } else if (intent.getAction().equals(WEATHER_RESULT)) { Log.i("mylog", "WEATHER廣播接收器中..."); ArrayList<WeatherInfo> arrayList = intent.getParcelableArrayListExtra(EXTRA_PARAM4); //獲取到了資料,進行一些UI更新... } } }; @Override protected void onDestroy() { super.onDestroy(); unregisterReceiver(receiver); } } (3)JavaBean: 此處給出NewsInfo類,Weather類省略。需要實現Parcelable介面 package com.czz.manager.bean; import android.os.Parcel; import android.os.Parcelable; /** * Created by XiuChou on 2016/8/19 */ public class NewsInfo implements Parcelable { public int describeContents() { return 0; } public void writeToParcel(Parcel out, int flags) { out.writeString(article_url); out.writeString(behot_time); out.writeInt(bury_count); out.writeInt(digg_count); out.writeInt(repin_count); out.writeInt(create_time); out.writeInt(publish_time); out.writeString(source); out.writeString(title); } public static final Parcelable.Creator<NewsInfo> CREATOR = new Parcelable.Creator<NewsInfo>() { public NewsInfo createFromParcel(Parcel in) { return new NewsInfo(in); } public NewsInfo[] newArray(int size) { return new NewsInfo[size]; } }; private NewsInfo(Parcel in) { article_url = in.readString(); behot_time = in.readString(); bury_count = in.readInt(); digg_count = in.readInt(); repin_count = in.readInt(); create_time = in.readInt(); publish_time = in.readInt(); source = in.readString(); title = in.readString(); } private String article_url;//Http,Url private String behot_time;//時間 private int bury_count;//踩數 private int digg_count;//點贊數 private int repin_count;//收藏數 private int create_time;//建立時間 private String group_id; private int publish_time;//釋出時間 private String source;//來源 private String title;//新聞標題 public int getCreate_time() { return create_time; } public int getDigg_count() { return digg_count; } public String getGroup_id() { return group_id; } public int getPublish_time() { return publish_time; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSource() { return source; } public void setSource(String source) { this.source = source; } public int getRepin_count() { return repin_count; } public void setRepin_count(int repin_count) { this.repin_count = repin_count; } public void setPublish_time(int publish_time) { this.publish_time = publish_time; } public void setGroup_id(String group_id) { this.group_id = group_id; } public void setDigg_count(int digg_count) { this.digg_count = digg_count; } public void setCreate_time(int create_time) { this.create_time = create_time; } public int getBury_count() { return bury_count; } public void setBury_count(int bury_count) { this.bury_count = bury_count; } public String getArticle_url() { return article_url; } public void setArticle_url(String article_url) { this.article_url = article_url; } public String getBehot_time() { return behot_time; } public void setBehot_time(String behot_time) { this.behot_time = behot_time; } @Override public String toString() { return "NewsInfo{" + "article_url='" + article_url + '\'' + ", behot_time='" + behot_time + '\'' + ", bury_count=" + bury_count + ", digg_count=" + digg_count + ", repin_count=" + repin_count + ", create_time=" + create_time + ", group_id='" + group_id + '\'' + ", publish_time=" + publish_time + ", source='" + source + '\'' + ", title='" + title + '\'' + '}'; } }