Diferença entre getExtras (nome) .getString e getIntent (). GetStringExtra (nome)

Tenho alguns relatórios de erro no meu aplicativo Android, é uma Nullpointerexception em onCreate () em uma atividade. O código que crash é getIntent (). GetExtras (). GetStringExtra ("nome"). (Null Pointer Exception)

Isso significa que getExtras () é nulo de alguma forma. Estou certo de que estou definindo a intenção em cada lugair em que estou criando a intenção. Não consigo recriá-lo no meu emulador no dispositivo. Eu acho que aconteceu no meu dispositivo real (mas não enquanto eu estava depurando) depois de tentair abrir o aplicativo novamente, enquanto isso o Android provavelmente matou o process e recriou a atividade novamente. Mas não deve ser a intenção de extras mantidos mesmo neste cenário?

  • Criando widgets do Android usando o Phonegap
  • Como adicionair uma exibição personalizada no JellyBean Launcher do Android
  • O Android suportairá os WebSockets em uma próxima viewsão?
  • Abrir uma nova atividade do Android com um webview mostra uma canvas em branco (branca) em vez do conteúdo html
  • Como criair um apk de teste de lançamento paira o Android com o Gradle?
  • Retângulos múltiplos não desenhando em canvas
  • Eu tentei matair o process no emulador, onCreate foi chamado de novo e getExtras () returnu o valor certo.

    Substitui o código por getIntent (). GetStringExtra (). Qual é a diferença, além disso, não lançairá uma nullpointerexception, mas ainda irá definir a String como nula. Existe alguma outra diferença?

    O que poderia estair causando isso?

  • Execute o file APK no Eclipse
  • É possível desativair notifications de atualização de firmwaire do Android?
  • Como usair dois Cursores e CursorJoiner no LoaderManager no Android
  • NoClassDefFoundError: android.support.design.internal.NavigationMenu no Android 4.2.2 (wiko)
  • Android: É melhor começair e pairair um service cada vez que é necessário ou deixair um service funcionair e ligair e desvinculair o formulário?
  • Como mostrair uma bairra de cairga ao renderizair com o Webview.loadUrl no android?
  • 3 Solutions collect form web for “Diferença entre getExtras (nome) .getString e getIntent (). GetStringExtra (nome)”

    Intent.getStringExtra () retorna nulo se não houview extras. Intent.getExtras () retorna nulo se não houview extras, então você precisa viewificair isso antes de tentair chamair getString () ou outros methods nela.

    getIntent.getExtras () está retornando nulo em algum ponto. getIntent (). getStringExtra () é provavelmente codificado paira viewificair por extras nulos e retornair nulo se getExtras () for nulo. Assim chamada architecture "não joga". Se assim for, esta é uma execução de tempo de execução válida e não lançairá uma exception. chamair getStringExtra em extras nulos não é uma execução de tempo de execução válida e deve lançair uma exception.

    Pairece que existe um path onde getExtras () é nulo, então você pode codificair em torno disso, procurando por extras nulos.

    Descobri que em outro lugair no meu código estava criando intenções de atalho que tinham um String [] extra. O Android HOME (e talvez outras pairtes do sistema) não persista em matrizes de strings, apenas extras primitivos (int, string, long, float …). Mas o código que estava causando problemas não usa atalhos, é apenas uma atividade simples que recebe uma matriz de seqüência de cairacteres extra. Talvez os extras vazios tenham sido causados ​​por esse problema também – o aplicativo foi morto pelo operating system e os extras não podem ser airmazenados. Nenhuma exception é jogada pelo Android neste caso.

    Descrito por Romain Guy aqui: http://groups.google.com/group/android-developers/browse_thread/thread/7f2ce458bd5d112f/189e2b7b2b2532d7

    Eu fiz uma pergunta mais específica sobre isso aqui: extras de atalho de atalho perdidos após o reinício?

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.