Izveidojiet Android logrīku savai lietotnei

Autors: Lewis Jackson
Radīšanas Datums: 13 Maijs 2021
Atjaunināšanas Datums: 1 Jūlijs 2024
Anonim
Izveidojiet Android logrīku savai lietotnei - Progr
Izveidojiet Android logrīku savai lietotnei - Progr

Saturs


Kopš OS pirmsākumiem Android ierīču logrīki ir ļāvuši lietotājiem izmantot savas iecienītās lietotnes, izmantojot sākuma ekrāna ērtības. Tātad, kā izveidot Android logrīku?

Izstrādātājam logrīki nodrošina jūsu lietojumprogrammu vērtīgu klātbūtni lietotāja sākuma ekrānā. Tā vietā, lai lietotāji tiktu izlikti no redzesloka lietotņu atvilktnē, lietotājiem tiks atgādināts par jūsu lietotni katru reizi viņi skatās uz sākuma ekrānu - vienlaikus arī iegūstot priekšskatījumu par jūsu lietotnes visinteresantāko un noderīgāko saturu.

Logrīki nodrošina jūsu lietojumprogrammu vērtīgu klātbūtni lietotāja sākuma ekrānā

Šajā rakstā es jums parādīšu, kā nodrošināt labāku lietotāja pieredzi, vienlaikus mudinot lietotājus iesaistīties jūsu lietotnē, izveidojot Android logrīku! Šī raksta beigās esat izveidojis ritināmu kolekcijas logrīku, kas lietotāja sākuma ekrānā parāda visu datu kopu.

Lai nodrošinātu, ka jūs piegādājat tāda veida logrīkus, kādus lietotāji izmanto gribu lai ievietotu viņu sākuma ekrānā, mēs izveidosim arī konfigurācijas darbību, kas lietotājiem ļaus pielāgot logrīka saturu, izskatu un funkcijas. Visbeidzot es parādīšu, kā jūs varat mudināt cilvēkus izmantot jūsu logrīku, izveidojot logrīka priekšskatījuma attēlu, kas parāda labāko, ko jūsu logrīks var piedāvāt.


Lasīt arī: Izstrāde salokāmām ierīcēm: Kas jums jāzina

Kas ir logrīki operētājsistēmai Android?

Lietojumprogrammu logrīks ir viegla, miniatūra lietojumprogramma, kas darbojas lietotāja sākuma ekrānā.

Logrīki Android var nodrošināt satura diapazonu, taču parasti tie ietilpst vienā no šīm kategorijām:

  • Informācijas logrīks. Šis nav ritināms logrīks, kas parāda noteiktu informāciju, piemēram, šodienas laika prognozi vai datumu un laiku.
  • Kolekcijas preces. Šis ir ritināms logrīks, kas parāda saistīto datu kopu, kas formatēts kā ListView, GridView, StackView vai AdapterViewFlipper. Kolekcijas logrīkus parasti atbalsta datu avots, piemēram, datu bāze vai masīvs.
  • Vadības logrīki. Šie logrīki darbojas kā tālvadības pults, kas lietotājiem ļauj mijiedarboties ar jūsu lietojumprogrammu, bez kam tas jāpadara priekšplānā. Lietotnēm, kas atskaņo multividi, piemēram, aplādes vai mūziku, bieži ir vadības logrīki, kas ļauj lietotājam aktivizēt atskaņošanu, pauzi un izlaist darbības tieši no sākuma ekrāna.
  • Hibrīdi preces. Dažreiz jūs varētu sniegt labāku lietotāja pieredzi, apvienojot elementus no vairākām kategorijām. Piemēram, ja jūs izstrādājat vadības logrīku mūzikas lietojumprogrammai, varat nodrošināt Play, Pause un Izlaist vadīklas, taču varat arī nolemt parādīt kādu informāciju, piemēram, dziesmas nosaukumu un izpildītāju. Ja jūs nolemjat sajaukt un saskaņot, tad neaizraujieties! Logrīki parasti nodrošina vislabāko lietotāja pieredzi, ja tie nodrošina ērtu piekļuvi nelielam laikam savlaicīgas, būtiskas informācijas vai dažām parasti izmantojamām funkcijām. Lai palīdzētu jūsu hibrīda logrīkiem būt viegliem, ieteicams noteikt jūsu logrīka galveno kategoriju, attīstīt to atbilstoši šai kategorijai un tad pievienojiet dažus elementus no logrīka sekundārās kategorijas.

Vai manam projektam tiešām ir nepieciešams lietojumprogrammas logrīks?

Ir vairāki iemesli, kāpēc jums vajadzētu apsvērt iespēju pievienot savam Android projektam lietojumprogrammu logrīku.


Logrīki operētājsistēmai Android var uzlabot lietotāju pieredzi

Parasti jo mazāk navigācijas soļu nepieciešams uzdevuma veikšanai, jo labāka ir lietotāja pieredze.

Iesniedzot lietojumprogrammas logrīku, no lietotnes visbiežāk izmantotajām plūsmām varat noņemt vairākas navigācijas darbības. Labākajā gadījumā jūsu lietotāji varēs iegūt nepieciešamo informāciju, vienkārši pieliekot skatienu sākuma ekrānā, vai veikt vēlamo uzdevumu, vienkārši pieskaroties pogai vadības logrīkā.

Jaudīgāks nekā lietojumprogrammu saīsnes

Lietotņu logrīki bieži reaģē uz onClick notikumiem, palaižot saistītās lietojumprogrammas augstāko līmeni, līdzīgi kā lietojumprogrammas saīsne. Logrīki var arī nodrošināt tiešu piekļuvi konkrētām darbības darbībām lietojumprogrammā, piemēram, pieskaroties logrīka Jaunajam saņemtajam paziņojumam, var tikt palaista saistītā lietotne ar jauno, kas jau ir atvērta.

Iekļaujot vairākas saites logrīka izkārtojumā, jūs varat nodrošināt piekļuvi ar vienu pieskārienu visām jūsu lietotnes vissvarīgākajām darbībām, noņemot vēl vairāk navigācijas darbību no jūsu visbiežāk izmantotajām plūsmām.

Iekļaujot vairākas saites logrīka izkārtojumā, jūs varat nodrošināt piekļuvi ar vienu pieskārienu visām jūsu lietotnes vissvarīgākajām darbībām.

Ņemiet vērā, ka logrīki reaģē tikai uz onClick notikumiem, kas lietotājiem neļauj nejauši mijiedarboties ar jūsu logrīku, kamēr viņi pārvelk sākuma ekrānu. Vienīgais izņēmums ir gadījumi, kad lietotājs mēģina izdzēst jūsu logrīku, velkot to uz sākuma ekrāna izvēlni Noņemt darbību, jo šajā gadījumā jūsu logrīks atbildēs uz vertikāla zvēliena žestu.

Šo mijiedarbību pārvalda Android sistēma, tāpēc jums nav jāuztraucas par manuālu logrīka vertikālas pārvilkšanas atbalsta manuālu ieviešanu.

Izveidojiet Android logrīku, lai veicinātu ilgtermiņa iesaisti

Pārliecināt cilvēkus lejupielādēt jūsu lietotni ir tikai pirmais solis, lai izveidotu veiksmīgu Android lietojumprogrammu. Iespējams, ka, satverot savu Android viedtālruni vai planšetdatoru un pārvelkot caur lietotņu atvilktni, jūs atklāsit vairākas lietotnes, kuras neesat izmantojis dienās, nedēļās vai potenciāli pat mēnešos!

Lasīt arī:Darba sākšana ar Android SDK Facebook

Kad jūsu lietotne ir veiksmīgi instalēta lietotāja ierīcē, jums būs smagi jāstrādā, lai viņi joprojām iesaistītos un baudītu jūsu lietotni. Lietotnes klātbūtnes nodrošināšana sākuma ekrānā var būt spēcīgs rīks, kas palīdz ilgtermiņā iesaistīties, vienkārši tāpēc, ka tas pastāvīgi atgādina, ka jūsu lietojumprogramma pastāv!

Labi izstrādāts logrīks var kalpot arī kā pastāvīga jūsu lietotnes reklāma. Katru reizi, kad lietotājs skatās uz sākuma ekrānu, jūsu logrīkam ir iespēja aktīvi mudināt viņu atkārtoti iesaistīties jūsu lietotnē, iepazīstinot viņu ar visu jūsu lietotnes visinteresantāko un noderīgāko saturu.

Kolekcijas lietotnes logrīka izveidošana

Šajā apmācībā mēs izveidosim kolekcijas logrīku, kurā masīvs tiek parādīts kā ritināms ListView.

Lai palīdzētu jums izsekot lietotnes logrīka dzīves ciklam, šis logrīks arī aktivizēs dažādus tostus, pārvietojoties pa dažādiem dzīves cikla stāvokļiem. Šīs apmācības beigās mēs papildināsim savu logrīku ar pielāgotu priekšskatījuma attēlu, kas tiks parādīts Android logrīku atlasītājā, un konfigurācijas darbību, kas lietotājiem ļaus pielāgot logrīku pirms tā ievietošanas sākuma ekrānā.

Izveidojiet jaunu Android projektu ar izvēlētajiem iestatījumiem un sāksim!

Logrīka izkārtojuma veidošana

Lai sāktu, definēsim logrīka lietotāja saskarni (UI).

Lietojumprogrammu logrīki tiek parādīti procesā ārpusē jūsu lietojumprogrammā, tāpēc varat izmantot tikai tos izkārtojumus un skatus, kurus atbalsta RemoteViews.

Veidojot izkārtojumu, jums jāierobežo:

  • AnalogClock
  • Poga
  • Hronometrs
  • FrameLayout
  • GridLayout
  • ImageButton
  • ImageView
  • LinearLayout
  • ProgressBar
  • RelativeLayout
  • Teksta skats
  • ViewStub
  • AdapterViewFlipper
  • GridView
  • ListView
  • StackView
  • ViewFlipper

Ņemiet vērā, ka iepriekšminēto klašu un skatījumu apakšklases ir atbalstīts.

Izveidojiet jaunu izkārtojuma resursu failu ar sarakstu_widget.xml. Tā kā mēs savus datus rādīsim, izmantojot ListView, šis izkārtojums galvenokārt kalpo kā konteiners elements:

Apkopo logrīku

Tālāk mums jāizveido datu sniedzējs mūsu ListView. Izveidojiet jaunu Java klasi ar nosaukumu DataProvider.java un pievienojiet šo:

importa android.content.Context; importa android.content.Intent; importēt android.widget.RemoteViews; importēt android.widget.RemoteViewsService; importa java.util.ArrayList; importa java.util.List; importēt statisku android.R.id.text1; importēt statisku android.R.layout.simple_list_item_1; sabiedrības klases DataProvider ievieš RemoteViewsService.RemoteViewsFactory {Saraksts myListView = jauns ArrayList <> (); Konteksts mContext = nulle; public DataProvider (konteksta konteksts, nodoma nodoms) {mContext = konteksts; } @Orreide public void onCreate () {initData (); } @Override public void onDataSetChanged () {initData (); } @Orride public void onDestroy () {} @Orride public int getCount () {return myListView.size (); } @Override public RemoteViews getViewAt (int position) {RemoteViews view = new RemoteViews (mContext.getPackageName (), simple_list_item_1); view.setTextViewText (text1, myListView.get (position)); atgriešanās skats; } @Override public RemoteViews getLoadingView () {return null; } @Orride public int getViewTypeCount () {return 1; } @Override public long getItemId (int position) {atgriešanās pozīcija; } @Orride publiskā Būla hasStableIds () {return true; } privāts void initData () {myListView.clear (); for (int i = 1; i <= 15; i ++) {myListView.add ("ListView item" + i); }}}

AppWidgetProvider: logrīka konfigurēšana

Lai izveidotu Android logrīku, jums jāizveido vairāki faili.

Mūsu pirmais logrīkam specifiskais fails ir AppWidgetProvider, kas ir BroadcastReceiver, kurā jūs definējat dažādas logrīku dzīves cikla metodes, piemēram, metodi, kas tiek izsaukta, kad logrīks tiek izveidots pirmo reizi, un metodi, kas tiek izsaukta, kad šis logrīks galu galā tiek izdzēsts.

Izveidojiet jaunu Java klasi (File> New> Java Class) ar nosaukumu CollectionWidget.

Lai sāktu, visiem logrīku nodrošinātāja failiem ir jāattiecas uz AppWidgetProvider klasi. Pēc tam objektā RemoteViews ir jāielādē list_widget.xml izkārtojuma resursa fails un jāinformē AppWidgetManager par atjaunināto RemoteViews objektu:

public class CollectionWidget paplašina AppWidgetProvider {static void updateAppWidget (konteksta konteksts, AppWidgetManager appWidgetManager, int appWidgetId) {// Atjaunina RemoteViews objektu // RemoteViews Views = new RemoteViews (context.getPackageoutName (), R.). setRemoteAdapter (konteksts, skati); // Pieprasiet, lai AppWidgetManager atjaunina lietojumprogrammas logrīku // appWidgetManager.updateAppWidget (appWidgetId, skati); }

Izveidojiet adapteri

Tā kā mēs savus datus rādām ListView, mums savā AppWidgetProvider ir jādefinē metode setRemoteAdapter (). Komplekts setRemoteAdapter () ir līdzvērtīgs AbsListView.setRemoteViewsAdapter () izsaukšanai, bet ir paredzēts izmantošanai lietojumprogrammu logrīkos.

Šajā metodē mums jādefinē AdapterView (R.id.widget_list) ID un tā pakalpojuma nodoms, kurš galu galā sniegs datus mūsu RemoteViewsAdapter - mēs drīz izveidosim šo WidgetService klasi.

privāts statisks void setRemoteAdapter (konteksta konteksts, @NonNull pēdējie RemoteViews skati) {Views.setRemoteAdapter (R.id.widget_list, new Intent (konteksts, WidgetService.class)); }}

Logrīku dzīves cikla metožu noteikšana

Savā AppWidgetProvider mums jādefinē arī šādas logrīku dzīves cikla metodes:

Jauna satura izgūšana, izmantojot onUpdate

Logrīka onUpdate () dzīves cikla metode ir atbildīga par jūsu logrīka skatījumu atjaunināšanu ar jaunu informāciju.

Šo metodi sauc katru reizi:

  • Lietotājs veic darbību, kas manuāli aktivizē metodi onUpdate ().
  • Ir pagājis lietojumprogrammas norādītais atjaunināšanas intervāls.
  • Lietotājs savā sākuma ekrānā ievieto jaunu šī logrīka gadījumu.
  • ACTION_APPWIDGET_RESTORED apraides nodoms tiek nosūtīts AppWidgetProvider. Šis apraides nodoms tiek aktivizēts, ja logrīks kādreiz tiek atjaunots no dublējuma.

Šeit reģistrēsit arī visus notikumu apstrādātājus, kurus vajadzētu izmantot jūsu logrīkam.

Atjauninot Android logrīku, ir svarīgi atcerēties, ka lietotāji var izveidot vairākus viena logrīka gadījumus. Piemēram, varbūt jūsu logrīks ir pielāgojams, un lietotājs nolemj izveidot vairākas “versijas”, kurās tiek attēlota atšķirīga informācija, vai kuras nodrošina piekļuvi unikālai funkcionalitātei.

Zvanot uz vietniUpdate (), jums jānorāda, vai jūs atjaunināt katru šī logrīka gadījumu vai tikai konkrētu gadījumu. Ja vēlaties atjaunināt katru gadījumu, varat izmantot appWidgetIds, kas ir ID masīvs, kas identificē katru ierīces gadījumu.

Šajā fragmentā es atjauninu katru gadījumu:

@Override public void onUpdate (konteksta konteksts, AppWidgetManager appWidgetManager, int appWidgetIds) {for (int appWidgetId: appWidgetIds) {// Atjaunināt visus šī logrīka gadījumus // updateAppWidget (konteksts, appWidgetManager, appWidgetId); } super.onUpdate (konteksts, appWidgetManager, appWidgetIds); }

Ņemiet vērā, ka, lai palīdzētu uzturēt koda skaidrību, šī onUpdate () metode pašlaik neveic izmaiņas logrīkā.

onEnabled: Sākotnējās iestatīšanas veikšana

OnEnabled () dzīves cikla metode tiek izsaukta, reaģējot uz ACTION_APPWIDGET_ENABLED, kas tiek nosūtīta, kad jūsu logrīka piemērs tiek pievienots sākuma ekrānam, lai vispirms laiks. Ja lietotājs izveido divus jūsu logrīka gadījumus, tad onEnabled () tiks izsaukts uz pirmo instanci, bet par otro.

OnEnabled () dzīves cikla metode ir tāda, kurā jāveic visas iestatīšanas, kas vajadzīgas visiem jūsu logrīka gadījumiem, piemēram, jāizveido datu bāze, kurā tiks nodrošināta informācija par jūsu logrīku.

Es parādīšu grauzdiņus, lai jūs varētu precīzi redzēt, kad tiek saukta šī dzīves cikla metode:

@Pārsniegt publisku tukšumu onEnabled (konteksta konteksts) {Toast.makeText (konteksts, "onEnabled sauc", Toast.LENGTH_LONG) .show (); }

Ņemiet vērā: ja lietotājs izdzēš visus jūsu logrīka gadījumus un pēc tam izveido jaunu instanci, tad tas tiek klasificēts kā pirmais gadījums, un onEnabled () dzīves cikla metode tiks izsaukta vēlreiz.

Tīrīšana, izmantojot ieslēgtu

OnDisabled () metode tiek izsaukta, reaģējot uz ACTION_APPWIDGET_DISABLED, kas tiek aktivizēta, kad lietotājs izdzēš Pēdējais jūsu logrīka piemērs.

Šī logrīka dzīves cikla metode ir vieta, kur jums jāattīra visi resursi, kurus esat izveidojis, izmantojot metodi onEnabled (), piemēram, izdzēšot datu bāzi, kuru izveidojāt vietnē onEnabled ().

Lai palīdzētu padarīt mūsu kodu saprotamāku, es katru reizi, kad tiks iedarbināta šī metode, es parādīšu tostu:

@Pārsniegt publisku tukšumu onDisabled (konteksta konteksts) {Toast.makeText (konteksts, "onDisabled sauc", Toast.LENGTH_LONG) .show (); }

Pabeigtais AppWidgetProvider

Jūsu CollectionWidget failam tagad vajadzētu izskatīties apmēram šādi:

importēt android.appwidget.AppWidgetManager; importēt android.appwidget.AppWidgetProvider; importa android.content.Context; importa androidx.annotation.NonNull; importa android.content.Intent; importēt android.widget.RemoteViews; importēt android.widget.Toast; // Paplašināt no AppWidgetProvider klases // sabiedriskās klases CollectionWidget paplašina AppWidgetProvider {static void updateAppWidget (konteksta konteksts, AppWidgetManager appWidgetManager, int appWidgetId) {// Ielādēt izkārtojuma resursa failu objektā RemoteViews // RemoteViews Views = new. getPackageName (), R.layout.list_widget); setRemoteAdapter (konteksts, skati); // Informējiet AppWidgetManager par objektu RemoteViews // appWidgetManager.updateAppWidget (appWidgetId, skati); } @Override public void onUpdate (konteksta konteksts, AppWidgetManager appWidgetManager, int appWidgetIds) {for (int appWidgetId: appWidgetIds) {updateAppWidget (konteksts, appWidgetManager, appWidgetId); } super.onUpdate (konteksts, appWidgetManager, appWidgetIds); } @Orride public void onEnabled (konteksta konteksts) {Toast.makeText (konteksts, "onEnabled sauc", Toast.LENGTH_LONG) .show (); } @Override public void onDisabled (konteksta konteksts) {Toast.makeText (konteksts, "onDisabled sauc", Toast.LENGTH_LONG) .show (); } privāts statisks void setRemoteAdapter (konteksta konteksts, @NonNull pēdējie RemoteViews skati) {Views.setRemoteAdapter (R.id.widget_list, new Intent (konteksts, WidgetService.class)); }}

AppWidgetProviderInfo fails

Jūsu lietojumprogrammas logrīkam ir nepieciešams arī AppWidgetProviderInfo fails, kas definē vairākus svarīgus rekvizītus, ieskaitot jūsu logrīka minimālos izmērus un to, cik bieži tas ir jāatjaunina.

AppWidgetProviderInfo fails tiek glabāts projekta res / xml mapē.

Ja jūsu projektā vēl nav šīs mapes, jums tā būs jāizveido:

  • Ar vadības taustiņu noklikšķiniet uz projekta res mapes.
  • Atlasiet Jauns> Android resursu direktorijs.
  • Nākamajā logā atveriet nolaižamo izvēlni Resursa tips un atlasiet xml.
  • Direktorija nosaukumam vajadzētu automātiski atjaunināties līdz xml, bet, ja tā nav, tas jāmaina manuāli.
  • Noklikšķiniet uz Labi.

Pēc tam izveidojiet collection_widget_info failu, kuru mēs izmantosim kā mūsu AppWidgetProviderInfo:

  • Ar vadības taustiņu noklikšķiniet uz projekta xml mapes.
  • Atlasiet Jauns> XML resursa fails.
  • Nosauciet šo failu collection_widget_info.
  • Noklikšķiniet uz Labi.

Mūsu failā AppWidgetProviderInfo mums jādefinē šādas īpašības:

1. android: previewImage

Šis ir zīmējums, kas attēlo jūsu lietojumprogrammas logrīku ierīces logrīku atlasītājā.

Ja jūs nesniedzat priekšskatījuma attēlu, Android tā vietā izmantos jūsu lietojumprogrammas ikonu. Lai mudinātu lietotājus atlasīt jūsu logrīku no logrīku atlasītāja, jums vajadzētu nodrošināt zīmējumu, kurā parādīts, kā jūsu logrīks izskatīsies, tiklīdz tas būs pareizi konfigurēts lietotāja sākuma ekrānā.

Vienkāršākais veids, kā izveidot priekšskatījuma attēlu, ir lietot logrīku priekšskatījuma programmu, kas ir iekļauta Android emulatorā. Šī lietotne ļauj jums konfigurēt logrīku un pēc tam ģenerēt attēlu, kuru pēc tam varat izmantot savā Android projektā.

Mēs izveidosim šo attēlu, kad būsim pabeiguši sava logrīka izveidi, tāpēc pagaidām kā pagaidu priekšskatījuma attēlu izmantošu automātiski ģenerētu mipmap / ic_launcher resursu.

2. android: widgetCategory

Lietojumprogrammu logrīki jāievieto lietotņu logrīku resursdatorā, kas parasti ir Android sākuma ekrāns, taču tas var būt arī trešās puses palaidējs, piemēram, Evie Launcher vai Nova Launcher.

Starp API līmeņiem 17 un 20 sākuma ekrānā bija iespējams ievietot lietojumprogrammu logrīkus vai bloķēšanas ekrāns, bet bloķēšanas ekrāna atbalsts tika pārtraukts API 21. līmenī.

Varat norādīt, vai lietotnes logrīku var ievietot sākuma ekrānā, bloķēšanas ekrānā (kuru Android dēvē par “taustiņslēgu”) vai abos, izmantojot atribūtu android: widgetCategory. Tā kā jaunākajās Android versijās logrīkus nav iespējams izvietot uz bloķēšanas ekrāna, mēs mērķauditoriju atlasīsim tikai sākuma ekrānā.

Lai saglabātu lietotāja privātumu, jūsu logrīkam, kad tas tiek novietots bloķēšanas ekrānā, nevajadzētu parādīt sensitīvu vai privātu informāciju.

Ja dodat lietotājiem iespēju ievietot jūsu logrīku bloķēšanas ekrānā, tad ikviens, kurš uzlūko lietotāja ierīci, potenciāli var redzēt jūsu logrīku un visu tā saturu. Lai palīdzētu saglabāt lietotāja konfidencialitāti, logrīkam, kad tas tiek ievietots bloķēšanas ekrānā, nevajadzētu parādīt sensitīvu vai privātu informāciju. Ja logrīks satur personas datus, ieteicams apsvērt atsevišķa sākuma ekrāna un bloķēšanas ekrāna izkārtojuma nodrošināšanu.

3. android: sākotnējais izkārtojums

Šis ir izkārtojuma resursa fails, kas jūsu logrīkam jāizmanto, kad tas tiek ievietots sākuma ekrānā, un tas mūsu projektam ir list_widget.xml.

4. android: resizeMode = “horizontāls | vertikāls”

Atribūts android: resizeMode ļauj jums norādīt, vai jūsu logrīka izmērus var mainīt horizontāli, vertikāli vai pa abām asīm.

Lai nodrošinātu, ka jūsu logrīks tiek pareizi parādīts un darbojas dažādos ekrānos, ieteicams ļaut savam logrīkam mainīt izmērus horizontāli. un vertikāli, ja vien jums nav kāda īpaša iemesla to nedarīt.

5. android: minHeight un android: minWidth

Ja jūsu logrīku var mainīt, tad jums jāpārliecinās, ka lietotājs nesarauj jūsu logrīku līdz vietai, kur tas kļūst nelietojams. Varat izmantot minHeight un minWidth atribūtus, lai definētu mazāko, kas jūsu lietotnei saruks, kad lietotājs to mainīs.

Šīs vērtības atspoguļo arī jūsu logrīka sākotnējo lielumu, tāpēc, ja jūsu logrīka lielums nav maināms, tad minHeight un minWidth definēs logrīka pastāvīgo izmēru.

6. android: updatePeriodMillis

AppWidgetProviderInfo ir arī vieta, kur jūs norādīsit, cik bieži logrīkam jāpieprasa jauna informācija.

Mazākais atbalstītais atjaunināšanas intervāls ir reizi 1800000 milisekundēs (30 minūtēs). Pat ja jūs paziņojat par īsāku atjaunināšanas intervālu, logrīks joprojām tiks atjaunināts tikai reizi pusstundā.

Lai gan jūs, iespējams, vēlēsities pēc iespējas ātrāk parādīt jaunāko informāciju, sistēmu būs pamodiniet miega ierīci, lai iegūtu jaunu informāciju. Bieži atjauninājumi var izdegt, izmantojot ierīces akumulatoru, it īpaši periodos, kad ierīce ir atstāta dīkstāvē ievērojamu laika periodu, piemēram, nakti. Labākās iespējamās lietotāja pieredzes nodrošināšana nozīmē līdzsvara atrašanu starp akumulatora patēriņa ierobežošanu un jaunas informācijas sniegšanu saprātīgā laika posmā.

Jums jāņem vērā arī tas, kāda veida saturs tiks parādīts jūsu logrīkā.

Jums jāņem vērā arī tāda veida saturs, kāds tiks parādīts jūsu Android ierīcēs. Piemēram, laikapstākļu logrīkam, iespējams, vajadzēs atjauninātu prognozi tikai vienu reizi dienā, savukārt lietotnei, kas parāda jaunākās ziņas, būs jāatjaunina biežāk.

Lai atrastu šo perfekto līdzsvaru, jums, iespējams, būs jāpārbauda savs logrīks dažādās atjaunināšanas frekvencēs un jāizmēra ietekme uz akumulatora darbības laiku un logrīka satura savlaicīgums. Ja jums ir labprātīga testētāju grupa, jūs pat varētu iestatīt A / B testēšanu, lai redzētu, vai dažas atjaunināšanas frekvences tiek saņemtas pozitīvāk nekā citas.

Arī lasīt: AndroidManifest.xml viss, kas jums jāzina

Visbeidzot, kad esat identificējis perfektu atjaunināšanas intervālu, izstrādājot un testējot lietotni, iespējams, vēlēsities izmantot īsāku intervālu. Piemēram, jūs varētu izmantot iespējami īsāku atjaunināšanas biežumu (android: updatePeriodMillis = ”1800000 ″), kad pārbaudāt, vai jūsu lietotnes metode OnUpdate () darbojas pareizi, un pēc tam mainiet šo vērtību pirms savas lietotnes nodošanas plašai sabiedrībai.

Pabeigtā AppWidgetProviderInfo

Pabeigtajam failam collection_widget_info.xml vajadzētu izskatīties šādi:

Nepārblīvējiet lietotāja sākuma ekrānu!

Lai nodrošinātu, ka sākuma ekrāns nekad neizskatās pārblīvēts, mēs savam logrīkam pievienosim dažus polsterējumus un piemales. Ja jūsu projektā vēl nav faila dimens.xml, jums tas būs jāizveido:

  • Ar vadības taustiņu noklikšķiniet uz projekta vērtību mapes.
  • Atlasiet Jauns> Vērtību resursa fails.
  • Piešķiriet šim failam vārdu dimens.
  • Noklikšķiniet uz Labi.

Atveriet savu dimens.xml failu un definējiet šādas rezerves un polsterējuma vērtības:

10 dp 8dp

Datu nosūtīšana uz logrīku

Tālāk mums jāizveido logrīku pakalpojums, kas būs atbildīgs par mūsu kolekcijas datu nosūtīšanu logrīkam.

Izveidojiet jaunu Java klasi (Jauna> Java klase) ar nosaukumu WidgetService un pievienojiet šo:

importa android.content.Intent; importēt android.widget.RemoteViewsService; sabiedriskās klases pakalpojums WidgetService paplašina RemoteViewsService {@Orride public RemoteViewsFactory onGetViewFactory (Intent intent) {atgriezt jaunu DataProvider (šis, nodoms); }}

Logrīka reģistrēšana manifestā

Tagad mums ir jāveic dažas izmaiņas mūsu projekta manifestā.

Lai sāktu, atveriet manifestu un reģistrējiet savu logrīku kā BroadcastReceiver. Mums ir jāpievieno arī nodomu filtrs darbībai android.appwidget.action.APPWIDGET_UPDATE.

Tālāk jums jāprecizē lietotņu logrīku nodrošinātājs:

Visbeidzot, mums ir jādeklarē pakalpojums, kas nosūtīs datus uz mūsu logrīku, kas šajā gadījumā ir WidgetService klase. Šim pakalpojumam nepieciešama android.permission.BIND_REMOTEVIEWS atļauja:

Pārbaudiet savu logrīku

Ja esat sekojis līdzi šai apmācībai, tagad jums būs pilnīgs kolekcijas logrīks, kas lietotāja sākuma ekrānā parāda datu kopu.

Ja tas bija reālās dzīves Android projekts, tad parasti izvērsīsit dzīves cikla metodes, it īpaši onUpdate () metodi, taču tas ir viss, kas mums ir nepieciešams, lai izveidotu logrīku, kuru varat instalēt un pārbaudīt savā Android ierīcē:

  • Instalējiet šo projektu saderīgā Android viedtālrunī, planšetdatorā vai AVD (Android virtuālajā ierīcē).
  • Turiet nospiestu jebkuru tukšu sākuma ekrāna sadaļu un pēc logiem atlasiet logrīki; ar to tiek palaists logrīku atlasītājs.
  • Pārvelciet caur logrīku atlasītāju, līdz atrodat tikko izveidoto lietojumprogrammu logrīku.
  • Ilgi nospiediet šo logrīku, lai to pievienotu sākuma ekrānam.
  • Tā kā šis ir pirmais šī konkrētā logrīka piemērs, ir jādarbina onEnabled () metode, un jūs redzēsit tostu “onEnabled sauc”.
  • Mainiet sava logrīka izmērus. Ja iestatāt minimālo atbalstīto lielumu, pārbaudiet, vai logrīks nevar samazināties par šo vērtību.
  • Pārbaudiet, vai ListView ritina, kā paredzēts.
  • Tālāk jums jāpārbauda onDisabled () metode, izdzēšot logrīku. Ilgi nospiediet logrīku un pēc tam atlasiet Noņemt no sākuma ekrāna. Tā kā šī ir šī konkrētā logrīka pēdējā instance, ir jādarbina onDisabled () metode, un jūs redzēsit tostu “onDisabled sauc”.

Tas ir viss, kas jums nepieciešams, lai piegādātu funkcionējošu Android lietojumprogrammu logrīku, taču ir daži papildinājumi, kas bieži var uzlabot lietotāja pieredzi. Turpmākajās sadaļās mēs aicināsim lietotājus izvēlēties šo logrīku no logrīku atlasītāja, izveidojot priekšskatījuma attēlu, kas parāda logrīku vislabākajā veidā. Es jums parādīšu arī to, kā izveidot pilnībā pielāgojamu logrīku, projektam pievienojot konfigurācijas darbību.

Android logrīka priekšskatījuma attēla izveidošana

Satverot Android ierīci un pārvelkot caur logrīku atlasītāju, jūs redzēsit, ka katru logrīku attēlo attēls, kas parasti parāda, kā šis logrīks izskatīsies, tiklīdz tas būs konfigurēts lietotāja sākuma ekrānā.

Lai mudinātu lietotājus izvēlēties jūsu logrīku, jums ir jāsniedz priekšskatījuma attēls, kas izceļ visu noderīgo informāciju un funkcijas, ko jūsu logrīks var piedāvāt.

Varat ātri un viegli izveidot priekšskatījuma attēlu, izmantojot logrīku priekšskatījuma programmu, kas ir iekļauta Android emulatorā.

Ņemiet vērā, ka logrīka priekšskatījums nav iekļauts jaunākajos Android sistēmas attēlos, tāpēc AVD būs jāizveido, izmantojot Nougat (API līmenis 25) vai vecāku:

  • Instalējiet savu lietojumprogrammu AVD, kurā darbojas API 25 vai vecāka versija.
  • Atveriet AVD lietotņu atvilktni un palaidiet logrīku priekšskatījuma lietotni.
  • Logrīka priekšskatījumā tiks parādīts saraksts ar visām lietojumprogrammām, kuras pašlaik ir instalētas šajā AVD; sarakstā atlasiet savu lietojumprogrammu.

  • Jūsu logrīks tagad tiks parādīts uz tukša fona. Pavadiet laiku sava logrīka izmēru maiņai un pielāgošanai, līdz tas parāda vislabāko, ko jūsu logrīks var piedāvāt.
  • Kad esat apmierināts ar sava logrīka izskatu un saturu, atlasiet Uzņemt momentuzņēmumu.

  • Lai iegūtu momentuzņēmumu, pārslēdzieties atpakaļ uz Android Studio un rīkjoslā atlasiet Skats> Rīka Windows> Device File Explorer. Tādējādi tiek palaists operētājsistēmas Android Studio ierīces failu pārlūks.
  • Ierīces failu pārlūkā dodieties uz sdcard / Download. Jums vajadzētu atrast priekšskatījuma attēlu, kas saglabāts šādā formātā: _ori_.png

  • Velciet šo attēlu no Android Studio un nometiet to viegli pieejamā vietā, piemēram, uz darbvirsmas.
  • Piešķiriet šim attēla failam aprakstošu nosaukumu.
  • Velciet un nometiet failu projekta zīmēšanas mapē.
  • Atveriet savu AppWidgetProviderInfo, kas šim projektam ir collection_widget_info.xml.
  • Atrodiet android: previewImage = ”@ mipmap / ic_launcher” un atjauniniet to, lai atsauktos uz priekšskatījuma attēlu.

Jūsu logrīks tagad izmantos šo jauno attēla resursu kā tā priekšskatījuma attēlu:

  • Instalējiet atjaunināto projektu savā fiziskajā Android ierīcē vai AVD.
  • Ilgi nospiediet jebkuru tukšu sākuma ekrāna sadaļu.
  • Pieskarieties logrīki, kas palaiž logrīku atlasītāju.
  • Ritiniet līdz savam logrīkam; tagad tam vajadzētu izmantot atjaunināto priekšskatījuma attēlu.

Pielāgojami logrīki: konfigurācijas aktivitātes pievienošana

Konfigurācijas darbība tiek palaista automātiski, kad lietotājs katru jūsu logrīka gadījumu ievieto sākuma ekrānā.

Ir vairāki iemesli, kāpēc jūs varētu vēlēties savam projektam pievienot konfigurācijas darbību.

logrīki parasti nodrošina vislabāko lietotāja pieredzi, kad tie nodrošina piekļuvi informācijai vai funkcijām, kas ir vissvarīgākās katram lietotājam.

Pirmkārt, dažiem logrīkiem ir nepieciešama sākotnēja iestatīšana, piemēram, logrīkam, kas parāda trauksmes signālus, iespējams, būs jāzina lietotāja mājas adrese, kur viņi strādā, un laiks, kad parasti pārvietojas. Bez sava veida, kā ievadīt šo informāciju, jūsu logrīks varētu būt pilnīgi bezjēdzīgs!

Turklāt logrīki parasti nodrošina vislabāko lietotāja pieredzi, kad tie nodrošina piekļuvi informācijai vai funkcijām, kas ir vissvarīgākās katram lietotājam. Projektam pievienojot konfigurācijas darbību, jūs varat dot lietotājiem iespēju izvēlēties tieši tā kas ir iekļauts jūsu logrīkā.

Pat samērā vienkāršas pielāgošanas, piemēram, logrīka fona vai fonta maiņa, var pozitīvi ietekmēt lietotāja pieredzi - galu galā neviens nenovērtēs logrīku, kas vizuāli saduras ar pārējo sākuma ekrānu.

Neviens nenovērtēs logrīku, kas vizuāli saduras ar pārējo sākuma ekrānu!

Alternatīvi, dažreiz jums var būt garš satura saraksts, kuru vēlaties iekļaut logrīkā, un jūs cenšaties sašaurināt savas iespējas. Konfigurācijas darbība var būt veids, kā visas jūsu idejas lietderīgi izmantot bez radot pārblīvēts, mulsinošs logrīks. Vienkārši paturiet prātā, ka logrīka iestatīšanai nevajadzētu justies kā sīkākam darbam, tāpēc, ja jūs sniedzat konfigurācijas darbību, ieteicams aprobežoties ar trim konfigurācijas opcijām.

Pievienosim konfigurācijas darbību mūsu projektam!

Pirmkārt, mūsu konfigurācijas darbībai ir nepieciešams izkārtojums, tāpēc izveidojiet jaunu izkārtojuma resursa failu ar nosaukumu config_activity.xml.

Šim izkārtojumam pievienošu šādas pogas:

  • Konfigurācijas poga. Reālās dzīves projektā šī poga kaut kādā veidā modificē logrīku, piemēram, pievienojot vai noņemot saturu vai mainot logrīka atjaunināšanas biežumu. Lai palīdzētu mūsu kodu padarīt skaidrāku, noklikšķinot uz šīs pogas, vienkārši tiks parādīts konfigurācijas opciju grauzdiņš.
  • Iestatīšanas poga. Kad lietotājs ir apmierināts ar viņu logrīka konfigurēšanu, nospiežot šo pogu, tikko konfigurētais logrīks tiek ievietots sākuma ekrānā.

Šis ir mans pabeigtais fails config_activity.xml:

Izveidojiet konfigurācijas darbību

Tagad mums ir jāizveido mūsu konfigurācijas darbība.

Lai sāktu, izveidojiet jaunu Java klasi ar nosaukumu ConfigActivity. Šajā darbībā mēs iegūsim lietotņu logrīka ID no nodomiem, ar kuriem tika sākta konfigurācijas darbība. Ja šim nolūkam nav logrīka ID, mums būs jāizsauc metode finiša pabeigšana ():

Nodomu nodoms = getIntent (); Paka ekstras = intent.getExtras (); if (ekstras! = nulle) {appWidgetId = extras.getInt (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {pabeigt (); }

Tālāk mums jāizveido atgriešanās nodoms, jānodod sākotnējais appWidgetId un jāiestata rezultāti no konfigurācijas darbības:

Intent rezultātsValue = jauns nodoms (); rezultātsValue.putExtra (AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); setResult (RESULT_OK, resultValue); apdare (); }}}

Ja jūs sniedzat konfigurācijas aktivitāti, ACTION_APPWIDGET_UPDATE apraide netiks automātiski nosūtīta, kad tiek palaista konfigurācijas aktivitāte, kas nozīmē onUpdate () metodi nebūs tiek saukts, kad lietotājs izveido jūsu logrīka gadījumu.

Lai nodrošinātu, ka jūsu logrīks ir izveidots, izmantojot atjauninātu informāciju un saturu, jūsu konfigurācijas darbība obligāti aktivizēt pirmo onUpdate () pieprasījumu.

Šeit ir pabeigtā ConfigActivity:

importēt android.app.Aktivitāte; importēt android.appwidget.AppWidgetManager; importa android.os.Bundle; importēt android.widget.Button; importa android.content.Intent; importa android.view.View; importēt android.view.View.OnClickListener; importēt android.widget.Toast; publiskās klases ConfigActivity paplašina aktivitāti {@Orride aizsargāts void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.config_activity); setResult (RESULT_CANCELED); Poga setupWidget = (poga) findViewById (R.id.setupWidget); setupWidget.setOnClickListener (jauns OnClickListener () {@Orride public void onClick (View v) {handleSetupWidget ();}}); Button configButton = (Button) findViewById (R.id.configButton); configButton.setOnClickListener (jauns OnClickListener () {@Orride public void onClick (View v) {handleConfigWidget ();}}); } privāts void handleSetupWidget () {showAppWidget (); } privāts void handleConfigWidget () {Toast.makeText (ConfigActivity.this, "Configuration options", Toast.LENGTH_LONG) .show (); } int appWidgetId; privāts void showAppWidget () {appWidgetId = AppWidgetManager.INVALID_APPWIDGET_ID; Nodomu nodoms = getIntent (); Paka ekstras = intent.getExtras (); if (ekstras! = nulle) {appWidgetId = extras.getInt (AppWidgetManager.EXTRA_APPWIDGET_ID, AppWidgetManager.INVALID_APPWIDGET_ID); if (appWidgetId == AppWidgetManager.INVALID_APPWIDGET_ID) {pabeigt (); } // DARĪT: Veiciet konfigurāciju // Intent resultValue = new Intent (); rezultātsValue.putExtra (AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); setResult (RESULT_OK, resultValue); apdare (); }}}

Kad esat izveidojis konfigurācijas darbību, šī aktivitāte jāpaziņo manifestā un jāprecizē, ka tā pieņem darbību APPWIDGET_CONFIGURE:

Visbeidzot, tā kā uz konfigurācijas darbību tiek atsaukts ārpus pakotnes jomas, šī aktivitāte ir jādeklarē mūsu AppWidgetProviderInfo, kas šajā gadījumā ir fails collection_widget_info.xml:

android: configure = "com.jessicathornsby.collectionwidget.ConfigActivity">

Projekta pārbaude

Tagad ir pienācis laiks pārbaudīt savu pabeigto projektu:

  • Instalējiet savu atjaunināto projektu fiziskā Android ierīcē vai AVD.
  • Izdzēsiet visus iepriekšējos logrīka gadījumus, lai pārliecinātos, ka strādājat ar visjaunāko versiju.
  • Ilgi nospiediet jebkuru tukšu sākuma ekrāna laukumu un pēc logiem atlasiet logrīki.
  • Logrīku atlasītājā atrodiet savu logrīku un ilgi nospiediet, lai to atlasītu.
  • Nometiet logrīku uz sākuma ekrānu. Konfigurācijas darbībai vajadzētu sākties automātiski.
  • Noklikšķiniet uz pogas Veikt kādu konfigurāciju un noklikšķiniet uz konfigurācijas opciju grauzdiņa, kas apstiprina, ka šī mijiedarbība ir veiksmīgi reģistrēta.
  • Iedomājieties, ka esat pielāgojis logrīka iestatījumus un tagad esat gatavs to ievietot sākuma ekrānā; pieskarieties pogai Izveidot logrīku un pieskarieties šim logrīkam.

Jūs varat lejupielādēt pabeigtu kolekcijas logrīku projektu no GitHub.

Iesaiņošana

Šajā rakstā mēs izveidojām ritināmu kolekcijas logrīku, kas lietotāja sākuma ekrānā parāda datu kopu.

Ja vēlaties turpināt strādāt ar šo projektu, tad varat mēģināt pievienot savu kodu onUpdate () metodei, lai izveidotu logrīku, kas tiek atjaunināts ar jaunu informāciju ar intervālu, kas noteikts jūsu AppWidgetProviderInfo failā (kolekcijas_widget_info).

Ja jūs izveidojat Android logrīku, noteikti kopīgojiet savus darbus zemāk esošajos komentāros!

Atjauninājum: 2019. gada 29. oktobrī - Mē eam atjauninājuši šo ziņu ar plašāku informāciju par HBO Max pakalpojumu, iekaitot precīzāku izlaišana datumu līdz 2020. gada maijam. Tā cena bū 14,99 UD mēne...

Android 10 izlaišana niedz daudz jaunu iepēju un uzlabojumu Google mobilajai operētājitēmai, taču, iepējam, vipretrunīgāk vērtētie jaunie papildinājumi ir žetu vadība funkcija, ka pilnībā aiztāj vecāk...

Portāla Izstrādājumi