Práticas recomendadas de atividades do usuário

As atividades do usuário ajudam os usuários a retomar as tarefas iniciadas em seu aplicativo. Siga estas diretrizes para criar atividades úteis, claras e bem estruturadas.

Diretrizes gerais

Criar atividades para tarefas significativas

Crie atividades para tarefas para as quais o usuário deseja retornar mais tarde. Bons candidatos incluem:

  • Documentos — um documento, uma planilha ou um arquivo específico que o usuário está editando.
  • Projetos — Um espaço de trabalho de projeto, design ou base de código.
  • Mídia – uma música, vídeo ou podcast que o usuário estava tocando.
  • Progresso do jogo – uma sessão de jogo, um nível ou um ponto de verificação.

Não crie atividades para ações triviais, como exibir configurações, rolar por uma lista ou navegar entre páginas.

Usar texto de exibição descritivo

  • Defina DisplayText como um nome conciso e reconhecível (por exemplo, "Relatório Trimestral" ou "Capítulo 5: A Jornada").
  • Definido Description para indicar contexto ou progresso (por exemplo, "Editando a Seção 3 — Análise de Receita").
  • Evite texto genérico como "Sem título" ou "Trabalhando em algo".

Atualizar atividades à medida que o usuário progride

Chame SaveAsync() periodicamente para atualizar a descrição com a posição atual do usuário:

UserActivity activity = new UserActivity("quarterly-report");
int currentPage = 3;
int totalPages = 10;

activity.VisualElements.Description = $"Page {currentPage} of {totalPages}";
await activity.SaveAsync();

Padrões de atividade por tipo de aplicativo

Aplicativos baseados em documentos

  • Use o caminho do arquivo do documento ou o identificador exclusivo como o ID da atividade.
  • Defina ActivationUri para abrir o documento específico.
  • Atualize Description com a seção atual ou edite o local.

Jogos

  • Use o slot de salvamento ou o identificador de sessão como a ID da atividade.
  • Defina DisplayText para o nível atual ou o nome da missão.
  • Inclua o progresso na descrição (por exemplo, "Nível 12 — 85% concluído").

Aplicativos de mídia

  • Use o identificador do item de mídia como a ID da atividade.
  • Defina DisplayText como o nome da faixa ou do episódio.
  • Inclua a posição de reprodução na descrição (por exemplo, "34:15 / 1:02:00").

Aplicativos de linha de negócios

  • Use o identificador do objeto comercial (número do pedido, ID do cliente, número de caso) como a ID da atividade.
  • Defina DisplayText como o nome ou o número do objeto.
  • Atualize com frequência à medida que o usuário progride por meio de um fluxo de trabalho.

Diretrizes visuais avançadas

Ao definir os detalhes visuais da atividade:

  • Mantenha DisplayText curto — em uma linha que identifique a tarefa.
  • Use Description para uma única linha de contexto ou progresso, não um parágrafo.
  • Defina um Attribution ícone para que a atividade seja reconhecível no histórico de atividades.
  • Sempre defina DisplayText, mesmo que você também defina outras propriedades visuais, para que a atividade tenha um fallback legível.
UserActivity activity = new UserActivity("quarterly-report");

activity.VisualElements.DisplayText = "Quarterly Report"; // Fallback
activity.VisualElements.Description = "Page 3 of 10";

Note

As versões anteriores dessa orientação recomendavam anexar um cartão adaptável completo (AdaptiveCardBuilder, no namespace Windows.UI.Shell) como o elemento visual da atividade. Essa API fazia parte da Linha do Tempo do Windows, que a Microsoft descontinuou. Não use AdaptiveCardBuilder em códigos novos – use as propriedades VisualElements mostradas acima.

Diretrizes de URI de ativação

  • Use um esquema de protocolo personalizado registrado em seu aplicativo (por exemplo, myapp://).
  • Inclua informações suficientes no URI para navegar diretamente até a tarefa.
  • Mantenha as URIs estáveis – não inclua tokens específicos da sessão que expiram.

Exemplo:

myapp://document/quarterly-report-2026?page=12

Gerenciamento de sessão

  • Crie um UserActivitySession quando o usuário começar a trabalhar em uma tarefa.
  • Descarte a sessão quando o usuário alternar para uma tarefa diferente.
  • Mantenha apenas uma sessão ativa de cada vez por canal de atividade.