Navegando Android: Como voltar à tela anterior? -- screen campo com navigation campo com menu camp android Relacionado O problema

Navigating Android: How To Go Back To Previous Screen?


3
vote

problema

português

Eu gostaria de saber como retornar à tela anterior no Android. Não apenas volte. Eu costumo tocar o botão "voltar" no smartphone, mas muitas vezes só existe ou me leva de volta para casa quando deveria ter me levado à tela anterior.

Inglês Original

I would like to know how to return to previous screen on Android. Not just go back. I usually tap "Back" button on smartphone but often it just exists or takes me back to home when it should have taken me to previous screen.

        

Lista de respostas

5
 
vote
vote
Melhor resposta
 

Isso é algo de simplificação, mas a resposta simples é: você não pode.

O que torna isso uma simplificação? Bem, é porque depende de como um determinado aplicativo é implementado. Aplicativos Android são baseados em torno do conceito de uma atividade , que é descrita na documentação de desenvolvimento como:

.

Uma atividade é uma coisa única e focada que o usuário pode fazer.

Quando uma nova atividade é lançada, ela é colocada em uma "pilha de atividade" em todo o sistema na parte superior da pilha (para qualquer pessoa desconhecida, consulte pilha (estrutura de dados) ). Quando o botão traseiro é pressionado, a atividade atual (no topo da pilha) é concluída e removida da pilha, fazendo com que o anterior (abaixo dele na pilha) seja trazido para o primeiro plano . Este comportamento pop / trazer para cima continua enquanto você continua pressionando o botão traseiro até que você atenda em casa, que é o começo da pilha. A partir daqui, você não pode "voltar" mais.

Agora, como isso se aplica a aplicativos? Em muitos aplicativos, uma atividade representa uma tela, individual . Quando você avança para uma nova tela, uma nova atividade é criada para a tela e empurrada para a pilha em cima da parte que a criou. Nos aplicativos que usam este design, batendo em contato com a tração para a tela anterior. A razão deve ser bastante auto-evidente: a tela que você está visualizando atualmente está no topo da pilha, a tela anterior fica abaixo dela (já que elas são cada as suas atividades). Assim, bater de volta remove a tela atual da pilha, termina-o e, em seguida, carrega o anterior.

Este não é um modelo necessário , no entanto. Você pode ter uma atividade que contenha vários layouts e telas. Nós usamos isso no meu escritório, por exemplo, criar um feiticeiro de configuração. A ideia é que bater de volta deve simplesmente sair do assistente, e há botões "back" e "next" na própria tela para fornecer navegação. Assim, mesmo que você esteja na terceira tela do assistente, você não criou nenhuma atividade adicional, portanto, pressionar o botão traseiro (botão difícil) irá tirá-lo da "atividade do assistente" e de volta para a "atividade do menu".

Além disso, o comportamento do botão traseiro pode ser substituído por uma aplicação de que eles escolherem. Ele simplesmente chama um método chamado onBackPressed() , que executa o comportamento padrão de ir para trás na pilha de atividades. No entanto, se houver uma implementação substituída de onBackPressed() na atividade atual, que será executado em vez disso.

Então, resumir: a ideia de que o botão traseiro volta para a "tela" anterior não é garantida. O botão Rígido lida com atividades apenas , que muitas vezes são "telas" para o usuário, mas não são necessariamente, e não são necessárias para serem. Não há conceito de "voltar uma tela ", a menos que o aplicativo que você esteja usando diga, mas essa funcionalidade ainda não é garantida pelo próprio botão traseiro.

Leitura adicional:

  • atividade e design de tarefas
  • Documentação de atividade
 

This is something of an oversimplification, but the simple answer is: you can't.

What makes this an oversimplification? Well, it's because it depends on how a given app is implemented. Android applications are based around the concept of an Activity, which is described in the development documentation as:

An activity is a single, focused thing that the user can do.

When a new Activity is launched it is placed onto a system-wide "Activity stack" at the top of the stack (for anyone unfamiliar, see Stack (data structure)). When the back button is pressed, the current Activity (at the top of the stack) is finished and removed from the stack, causing the previous one (beneath it on the stack) to be brought to the foreground. This pop/bring-to-foreground behavior continues as you keep pressing the back button until you land at HOME, which is the start of the stack. From here, you cannot go "back" any further.

Now, how does this apply to apps? In many applications, an Activity represents one, individual screen. When you advance to a new screen, then, a new Activity is actually created for the screen and pushed onto the stack on top of the one that created it. In apps that use this design, hitting back will, in fact, bring you to the previous screen. The reason should be fairly self-evident: the screen you are currently viewing is on the top of the stack, the previous screen sits below it (since they are each Activities themselves). Thus, hitting back removes the current screen from the stack, finishes it, and then loads the previous one.

This is not a required model, however. You can have an Activity that contains multiple layouts and screens. We have used this in my office to, for example, create a configuration wizard of sorts. The idea is that hitting back should simply exit the wizard, and there are "Back" and "Next" buttons on the screen itself to provide navigation. Thus, even if you are on the third screen of the wizard, you have not created any additional Activities, so hitting the back button (hard button) will take you out of the "Wizard Activity" and back to the "Menu Activity".

Further, the behavior of the back button can be overridden by an application of they so choose. It simply calls a method named onBackPressed(), which performs the default behavior of going backwards on the Activity stack. However, if there is an overridden implementation of onBackPressed() in the current Activity, that will be executed instead.

So to sum up: the idea that the back button goes back to the previous "screen" is not guaranteed at all. The hard back button deals with Activities only, which are often "screens" to the user, but aren't necessarily, and are in no way required to be. There is no concept of "go back one screen" unless the app you are using says there is, but that functionality is still not guaranteed to be provided by the back button itself.

Further reading:

  • Activity and Task Design
  • Activity documentation
 
 
1
 
vote

Se um aplicativo não levá-lo para a tela anterior quando você for de volta, não há nada que você ou o Android puder fazer sobre isso. Você poderia pedir ao desenvolvedor do aplicativo para implementá-lo, mas é sobre isso.

 

If an app doesn't take you to the previous screen when you hit Back, there's nothing you or Android can do about it. You could ask the app's developer to implement it but that's about it.

 
 

Perguntas relacionadas

5  Como posso agrupar aplicativos juntos na visualização de menu?  ( How can i group apps together in the menu view ) 
A visualização de menu do telefone lista todos os aplicativos que instalei. Todos os deles. O telefone veio pré-instalado com 2,5 páginas de aplicativos, ...

0  Não é possível acessar o menu de serviço no meu galaxy s3  ( Not able to access the service menu on my galaxy s3 ) 
Eu tenho um Samsung Galaxy S3 de US Cellular e estou tentando usá-lo em uma operadora diferente. Eu adicionei o novo cartão SIM e eu tentei todas as opções ...

12  Como faço para simular o botão de menu no Android 6?  ( How do i simulate menu button on android 6 ) 
Estou usando o Samsung Galaxy S7. Pressionar muito o botão recente não simula o botão Menu, mas ativa o modo de tela dividido. Pressionar o botão de volta tam...

3  Como faço para organizar os ícones manualmente no menu App?  ( How do i arrange the icons manually in the app menu ) 
Eu estou usando tela Micromax 2 A110 com Android ICS 4.0.4 . Eu instalei poucos aplicativos que são classificados aleatoriamente (ou talvez alfabeticamente...

2  Como faço auto organizar ícones no menu App?  ( How do i auto arrange icons in the app menu ) 
Meu dispositivo é um Samsung Galaxy Ace / Cooper. Está correndo em Froyo. Eu quero arrancar automaticamente ícones no menu App. Existe uma maneira de fazer is...

0  Visualização de vídeo USB  ( Usb video preview ) 
Depois de digitalizar todas as imagens antigas de vídeo da minha família, agora estou procurando uma maneira de distribuir os vídeos renderizados na família. ...

0  Hack ics browser para restaurar "botão de menu expõe o campo de URL"  ( Hack ics browser to restore menu button exposes url field ) 
Acabei de receber uma galáxia S3, e finalmente estou sendo forçado a confrontar um aspecto de ICs que eu odiei desde o momento em que apareceu no meu Xoom: o ...

3  Navegando Android: Como voltar à tela anterior?  ( Navigating android how to go back to previous screen ) 
Eu gostaria de saber como retornar à tela anterior no Android. Não apenas volte. Eu costumo tocar o botão "voltar" no smartphone, mas muitas vezes só existe o...

1  Como fazer o menu slide em 3D?  ( How to make menu slide in 3d ) 
Eu vi aqui: http: / /heunlockr.com/2011/04/12/android-101-How-to-scan-use-a-qr-code/ Relógio de vídeo e você verá. Eu quero saber como criar este efeito...

2  Adicione um aplicativo ao ABERTO com o menu  ( Add an application to the open with menu ) 
Estou usando um Samsung Note II em execução Jelly Bean 4.1.2. Eu gostaria de adicionar um aplicativo ao aberto com lista. Eu baixei um aplicativo de edição ...




© 2022 pergunte.org All Rights Reserved. Casa de perguntas e respostas todos os direitos reservados


Licensed under cc by-sa 3.0 with attribution required.