Casa > C > Como Chamar O Método Atividade Principal Em Outra Classe No Android

Como chamar o método Atividade Principal em outra classe no Android

Se você está se referindo a algo como:

nova Atividade Principal().doMeuMeuMétodo();

então isso não é possível.

a resposta real depende inteiramente do que você está tentando alcançar. Pode ser que a resposta envolva passar uma referência à sua Activity para outra classe, ou usar uma interface, ou usar um EventBus como o LocalBroadcastManager, ou iniciar uma nova Activity com uma intenção e alguma forma de bandeira passada para o seu pacote de "extras", ou algo completamente diferente.

Adicionar mais informações sobre o que você está tentando alcançar para a descrição da sua pergunta vai ajudar.

Editar:

Agora que eu entendo que o objetivo é chamar um método em uma Atividade de um BroadcastReceiver, eu posso explicar como neste caso eu quase uso uma interface. Aqui está um exemplo deste trabalho:

P>Primeiro, crie uma interface para transmitir os dados que você quer enviar a partir do seu BroadcastReceiver. Here, for example, it is OnSampleReadyListener

  1. public final class SampleReceiver extends BroadcastReceiver { 
  2.  
  3. public static final String SAMPLE_DATA_EXTRA = "sample_extra"; 
  4.  
  5. private OnSampleReadyListener mListener; 
  6.  
  7. @SuppressWarnings("unused") 
  8. public SampleReceiver() {} 
  9.  
  10. public SampleReceiver(OnSampleReadyListener listener) { 
  11. mListener = listener; 
  12.  
  13. @Override 
  14. public void onReceive(Context context, Intent intent) { 
  15. final String someExampleData = intent.getStringExtra(SAMPLE_DATA_EXTRA); 
  16. mListener.onSampleDataReady(someExampleData); 
  17.  
  18. public interface OnSampleReadyListener { 
  19. void onSampleDataReady(String someExampleData); 

Then, set up your Activity class to pass an instance of OnSampleReadyListener, and set up your Activity to listen for Broadcasts:

  1. public class MainActivity extends AppCompatActivity implements OnSampleReadyListener { 
  2.  
  3. private SampleReceiver mReceiver; 
  4.  
  5. @Override 
  6. protected void onCreate(@Nullable Bundle savedInstanceState) { 
  7. super.onCreate(savedInstanceState); 
  8. //Pass an instance of the listener to your receiver... 
  9. mReceiver = new SampleReceiver(this); 
  10.  
  11. //..Set up your Activity to listen for your Broadcast Receiver... 
  12.  
  13. //Run any logic related to received broadcasts here 
  14. @Override 
  15. public void onSampleDataReady(String someExampleData) { 
  16. Log.d("TAG", "Data Received: " + someExampleData); 

De Bum Llanos

Como é que um método principal é invocado automaticamente explica-o em resumo? :: Porque não pode usar o GPS com o Google Maps offline?