Pergunta

Enviada: Seg 30 de novembro de 2009 17:08 Assunto: Problema simples com a intenção Extras Olá,

Eu estou trabalhando em um widget app para a tela inicial. Eu estou tentando fazê-lo assim quando um usuário toca no widget que altera os dados que está sendo exibido no widget. No entanto, eu também estou permitindo que várias instâncias de widgets abertos com dados diferentes. Portanto, a fim de dizer ao meu método qual widget para atualização, eu estou adicionando um extra para a intenção de que é lançado para alterar os dados.

Aqui está a intenção eu tenho: Java:

Intent changeData = new Intent("com.tonycosentini.mintdroid.CHANGE_DATA"); 
changeData.putExtra("widget_id", currentWidgetId); 
PendingIntent changeDataPendingIntent = PendingIntent.getBroadcast(this, 0, changeData, 0); 
//This will return the correct value, but if I call it in my onreceive() method it won't.
Log.v(TAG, "stored id is: " + changeData.getIntExtra("widget", 0);

Este armazena corretamente o ID de widget, mas quando o método de alteração de dados é chamado, o ID de widget que é lido a partir da intenção é a primeira instância do widget. Ou seja, o que há é um loop que gera todos os widgets e não importa o widget de tocar, o ID de widget que é recebido é sempre o primeiro ID de widget no primeiro widget.

Alguém tem uma idéia sobre como resolver isso? Espero que eu não fiz palavra demasiado mal.

Obrigado pela leitura, Tony

Foi útil?

Solução

Este é um problema conhecido com PendingIntents; quando Android compara PendingIntents não se compara Intenção extras, então você não pode programar a mesma intenção várias vezes básicos com apenas diferentes extras. Agora, você só pode resolver isto fazendo a intenção única de alguma forma diferente de extras, como adicionar informações extras para os dados Intenção.

Há um pouco de discussão sobre isso no Google Grupo Android: http://groups.google.com/group/android-developers/browse_thread/thread/81100da6ddb21136

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top