luzzattigramsci.it

  

Bästa artiklarna:

  
Main / App kraschar när tillbaka-knappen trycks ned

Appen kraschar när bakåtknappen trycks ned

Tillbaka-tangenten används ofta när du navigerar till olika skärmaktiviteter för en utvecklare. Det är viktigt för varje apputvecklare att ha en viss förståelse för vilka händelser som uppstår genom att trycka på bakåtknappen. Hur kommer dessa att hanteras av Android OS och deras app, behöver de lägga till specifika hanteringsmetoder i sin kod.

Nybörjare för nybörjare står ofta inför problemen med att appar kraschar eller annat oväntat beteende när man trycker på bakåtknappen från en av aktiviteterna i deras app. Genom att förstå några grundläggande begrepp kommer de lätt att kunna bli av med dessa problem och ta total kontroll över appens beteende, vilket alltid borde vara fallet. Artikeln är inte alls omfattande om detta ämne men hjälper till att förstå några viktiga punkter.

När du trycker på bakåtknappen på en aktivitet i fokus utfärdar operativsystemet eller själva systemet slutanropet för den aktiviteten, vilket gör att appen kan återgå till den samtalsaktivitet och säkerställer att den överordnade aktiviteten återställs i samma tillstånd som den var innan barnaktiviteten kallades. Så i grunden behöver en utvecklare inte göra någonting för att hantera tangenttryckningar. Men ibland kraschar appen eller den överordnade aktiviteten är inte i samma tillstånd som den var tidigare.

Två vanliga lösningar du kan stöta på är :. Troligtvis behöver du inte något av dessa. Aktiviteten kommer att slutföras av sig själv och föräldraaktiviteten återställs. Om barnaktiviteten anropades med StartActivity kan du inte observera några problem.

Det är när din aktivitet skulle ge några resultat via en avsikt, du kan stöta på problem. Det verkliga problemet kan vara i samtalsaktiviteten snarare än den som kallas. En enkel förståelse för vad som händer när bakåtknappen trycks ned på en aktivitet som anropades med startActivityForResult Intent, int, Bundle räcker för att du ska veta vad du behöver fixa i din samtalsaktivitet.

Läs vidare. Vad du kanske inte förväntar dig åtminstone gjorde jag inte, att när bakåtknappen trycks ned på en aktivitet som ska returnera vissa resultat är aktiviteten avslutad vid den tidpunkten och kontrollen återgår till förälderaktiviteten inuti onActivityResult-hanteraren . Så oavsett om barnaktiviteten slutade som den var utformad för, eller om den slutade på grund av en baktryckning, återgår kontrollen till onResult-metoden vid anropsaktivitet.

Det betyder att du måste ange rätt kod i den här metoden för att kunna hantera backpress-händelsen. Den vanligaste orsaken till appkrasch i sådana scenarier är att avsikten som skickas till den anropade aktiviteten returneras noll när tillbaka-tangenten trycks, och onActivityResult har någon kod som försöker komma åt data i avsikten. Om inte undantaget för null avsikt hanteras har det inget annat val än att krascha. Så länge du kontrollerar resultatkoden innan du använder data i avsikt bör du inte ha några problem, som nedan :.

Logga in e-post. Glömt ditt lösenord? Sök inom: Artiklar Snabbsvar Meddelanden. Märkt som mobil. Statistik 57. JainGirish, Betygsätt detta: Registrera dig eller logga in för att rösta. Förstå Android-aktiviteter hantering av bakåtknappstryck - några användbara tips för att undvika oväntade resultat eller appkrasch. Introduktion Back-tangenten används ofta när du navigerar till olika skärmaktiviteter för en utvecklare.

Bakgrund Ofta har nybörjare utvecklare problem med att appar kraschar eller annat oväntat beteende när tillbaka-tangenten trycks ned från en av aktiviteterna i deras app. Koden När du trycker på bakåtknappen på en aktivitet i fokus, utfärdar operativsystemet eller själva systemet slutanropet för den aktiviteten, vilket gör att appen kan återvända till samtalsaktiviteten och säkerställer att den överordnade aktiviteten återställs i samma tillstånd där det var innan barnaktiviteten kallades.

Två vanliga lösningar du kan stöta på är: Så länge du kontrollerar resultatkoden innan du använder data i avsikt, borde du inte ha några problem, som nedan: Kontroll återgår till onActivityResult metod för att ringa aktivitet när tillbaka-tangenten trycks på kallad aktivitet.

Du kan hantera vila förbi så länge du är medveten om detta. David A. Gray 2-Jul-15 9: JainGirish 2-Jul-15 10: Gray 2-Jul-15 12: Richard MacCutchan 29-Jun-15 6: Richard MacCutchan 2-Jul-15 21: Gå till toppen. Betygsätt detta :. Storbritannien.

Första Föregående Nästa. Auto back-knapp trycka på medlem 14062176 20-nov-18 23: Medlem 14062176. Jag har stött på det här problemet i samband med att utveckla webbapplikationer, men jag misstänker att samma kan sägas om Android-applikationer. Det lämpliga svaret på Back-knappen är inte nödvändigtvis för att gå tillbaka till föregående aktivitet. Du antydde i stort sett detta med dina kommentarer om att kontrollera om avsikten är noll, men det kan finnas en större fråga som lurar.

Ofta är det förväntade beteendet mer som "visa huvudmenyn. Vad som händer nästa är upp till dig, förutom att ditt mål, till skillnad från tennis, är att hålla bollen i spel. Ja. Svaret på en bakåtknapp kan vara något annat, som är en del av appens funktionalitet och upp till utvecklaren att implementera. Bara att gå tillbaka till samtalsaktivitet är en av de vanligaste implementeringarna, och en användare förväntar sig i allmänhet också.

Så jag pratade om det. Jag håller med; det är ofta lämpligt. Min poäng är att du inte bara ska gå tillbaka blint. Ibland är det vettigare att gå längre, eller att skicka användaren någon annanstans, till exempel den aktuella nivån i applikationsmenyn. Ganska användbart men ... Richard MacCutchan. Något du bör göra på varje kodrad som använder en referens som returneras eller erhålls från någon annanstans.

JainGirish skrev: Nybörjare måste förstå vad en nullreferens är och hur man hanterar den. När de förstår den grundläggande situationen kan de tillämpa den överallt och på varje plattform och språk; det är inte specifikt för att svara på bakåtknappen i Android. Min röst av 4 den2k88 29-juni-15 3: Detta betyder ungefär att "söka efter nollor innan du använder värden" vilket är något som någon programmerare som inte är född i JavaNullPointerException-eran gör som ett mantra.

Ändå är det ett användbart "se upp, nollor kan returneras även om du inte förväntar dig". Min röst av 4 JainGirish 2-jul-15 10: Tack så mycket för läsning och för omröstning. Som jag nämnde i det andra svaret är det huvudsakliga meddelandet som överförts eller åtminstone jag försökte att var att hantera backpress-händelsen, vilket är att veta var kontrollen återgår till vid backpress.

Senaste besöket:

(с) 2019 luzzattigramsci.it