Android:
public class LocationService extends Service {
@Override
public void onStart(Intent intent, int startId) {
super.onStart(intent, startId);
startActivity(new Intent(this, activity.class));
}
}
Lancei este serviço de Activity
Em Activity
se satisfaz condição de início
startService(new Intent(WozzonActivity.this, LocationService.class));
do meu LocationService
mencionado acima não pôde iniciar Activity
, como posso obter o contexto da execução atual Activity
na classe de serviço?
Eu tive o mesmo problema e quero que você saiba que nenhuma das opções acima funcionou para mim. O que funcionou para mim foi:
e em uma das minhas subclasses, armazenadas em um arquivo separado, eu precisava:
Todas as outras respostas me deram a
nullpointerexception
.fonte
Outra coisa que vale a pena mencionar: embora a resposta acima funcione bem quando nossa tarefa estiver em segundo plano, a única maneira de fazê-la funcionar se nossa tarefa (feita de serviço + algumas atividades) estiver em primeiro plano (ou seja, uma de nossas atividades visíveis para o usuário) foi assim:
Não sei se ACTION_VIEW ou FLAG_ACTIVITY_NEW_TASK tem alguma utilidade real aqui. A chave para ter sucesso foi
e, é claro, FLAG_ACTIVITY_REORDER_TO_FRONT por não instanciar a atividade novamente. Boa sorte!
fonte
não se pode usar o
Context
doService
; foi capaz de obter o (pacote) daContext
mesma forma:fonte
FLAG_ACTIVITY_NEW_TASK
bandeiraAlternativamente,
Você pode usar sua própria classe Application e ligar de onde precisar (principalmente não atividades).
E registre sua classe Application:
Então ligue :
fonte
context = getApplicationContext();
paracontext = this;
Se você precisar recalcular uma Atividade que esteja no fundo, do seu serviço, sugiro o seguinte link. Intent.FLAG_ACTIVITY_NEW_TASK não é a solução.
https://stackoverflow.com/a/8759867/1127429
fonte