Documente Academic
Documente Profesional
Documente Cultură
Profesor
OkHttp
este un client HTTP foarte rapid
Retrofit
este un client de tip “type-safe” pentru Android și Java
folosește adnotări pentru a descrie cererile HTTP
https://developer.android.com/training/volley/
/**
* An HttpStack subclass
* using OkHttp as transport layer.
*/
public class OkHttpStack extends HurlStack {
private final OkUrlFactory mFactory;
public OkHttpStack() {
this(new OkHttpClient());
}
public OkHttpStack(OkHttpClient client) {
if (client == null) {
throw new NullPointerException("Null client.");
}
mFactory = new OkUrlFactory(client);
}
}
Multe dintre API-urile existente pe
{
Internet folosesc formatul JSON "firstName": "Antonio",
"lastName": "Smith",
Dacă dorim câmpuri din clasa noastră să aibă alte nume decât câmpurile
din JSON, putem folosi adnotări import com.google.gson.annotations.SerializedName;
public class JobOffer {
@SerializedName("title")
private String title;
@SerializedName("description")
private String desc;
@SerializedName("salary")
private String salary;
}
Un dezvoltator, ar trebui ca la scrierea de cod să folosească modele/tipare
de design larg utilizate
Respectând aceste tipare alți dezvoltatori pot să înțeleagă mai ușor ceea ce este
deja dezvoltat
În acest sens vom discuta despre:
Concurență
Handlere și fire de execuție (thread)
AsyncTask
Service
IntentService
Loader
Tipare în Android
Singleton
Adapter și holder
Observer
Activity Not Responding (ANR)
cod care rulează în UI / în thread-ul principal, care blochează
interacțiunea cu utilizatorul mai mult de 5 secunde
O aplicație Android implicit rulează un singur thread – thread-ul
de UI
Mesajele trimise de aplicații sunt depuse într-o coadă numită
MessageQueue, care este unică pentru fiecare thread
Un handler poate trimite mesaje în această coadă
Când este creat un handler, el este asociat automat cu MessageQueue-
ul thread-ului unde este creat
https://developer.android.com/guide/components/processes-and-threads
Un handler este folosit în două situații:
Trimiterea unui mesaj întârziat în thread-ul curent
Trimiterea unui mesaj în alt thread
Un exemplu de folosire postDelayed(Runnable, time):
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
startActivity(intent);
}
},3000);
}
pB.setProgress(values[0]); defapt vor fi executate secvențial
@Override
protected Void doInBackground(Integer... values) {
pentru Android > 3.0
for (int i = 0; i < values[0]; i++){
try {
Thread.sleep(1000);
Cel de-al doilea model va executa
} catch (InterruptedException e) {
e.printStackTrace();
în paralel task-urile
}
}
onProgressUpdate(new Integer[]{i + 1}); Metodele execute a AsyncTask
}
return null;
trebuie executate din thread-ul
@Override
protected void onPostExecute(Void o) { principal
super.onPostExecute(o);
}
Log.d("AsyncTask", "Completed");
O singură metodă execute poate fi
}
apelată din același obiect
https://developer.android.com/guide/components/services
Un exemplu:
Aplicație de citit știri
Stochează știrile offline
Când un articol nou este publicat, utilizatorii primesc o notificare push
Această notificare va genera un intent pentru a descărca articolul
https://developer.android.com/guide/components/loaders
}
return sInstance;