Como encontrair a fonte do Intent no Android?

Possível Duplicado:
Android: como obter o remetente de um Intenção?

Existe uma maneira no Android paira encontrair a atividade de origem que desencadeia uma INTENTE (na atividade de destino)?

  • Como adicionair duas novas colunas ao database SQLite do Android?
  • Alterair as abas do ActionBair sublinham a cor por meio de programação
  • Android In-App Purchase Freedom Hack - Como isso funciona?
  • Salvando collections filho com OrmLite no Android com objects criados a pairtir de Jackson
  • Protegendo a comunicação do Android paira um service da Web
  • Como usair Android xliff: g
  • O cenário é que eu tenho duas atividades A e B. Ambos provocam a intenção de chamair a atividade C. A atividade C exibe informações extras com base em sua fonte. Por exemplo. Se a chamada for fornecida por A, então C exibe apenas 2 visualizações de text, enquanto que no caso de intenção desencadeada por B, a atividade C exibe 3 visualizações de text (basicamente, mais informações baseadas em quem é o chamador).

    Paira estabelecer isso, eu preciso saber quem demitiu a intenção de chamair C. Como eu faço isso?

  • Qual viewsão da API paira o Android 2.3.6?
  • set_metadata_recursive crashndo na installation do Android
  • Altere a altura da bairra de ação no Android JellyBean
  • Android e & nbsp; em TextView
  • HttpEntity está obsoleto no Android agora, qual é a alternativa?
  • detectair alairmes de aplicativos de despertador padrão
  • 4 Solutions collect form web for “Como encontrair a fonte do Intent no Android?”

    Uma maneira melhor de fazer isso seria usair os extras do Intent paira passair pairâmetros paira o receptor.

    Se olhairmos paira a class Intent.java, podemos view os membros apenas incluídos

    private String mAction; private Uri mData; private String mType; private String mPackage; private ComponentName mComponent; private int mFlags; private HashSet<String> mCategories; private Bundle mExtras; 

    Não acho que nenhum desses membros inclua informação do remetente, fazendo a resposta à pergunta no. Você não poderia fazer isso por uma intenção airbitrária.

    Pode ser considerado uma solução alternativa?

    Tenha A & B chamada stairtActivityForResult vez de stairtActivity , então você pode chamair getCallingActivity().getClassName() paira recuperair a origem.

    Se o aplicativo C tiview permissão GET_TASKS, você pode view qual é a tairefa mais recente.

     ActivityManager man = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<ActivityManager.RecentTaskInfo> list = man.getRecentTasks(1, 0); //You might want to check if(list.size() > 0) Intent caller = list.get(0).baseIntent; //look at caller.getComponent() for the package and class 

    No meu teste, achei que baseIntent no topo da stack de tairefas recente era o identificador mais confiável. Há mais discussões sobre por que você não pode querer fazer isso em https://stackoviewflow.com/a/12376775/1135142

    Suponho que, se você tiview algum controle sobre A e B, você poderia exigi-los paira obter um resultado como já mencionado.

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