Comunicação entre BroadcastReceiver e Activity - android
Eu tenho um receptor de transmissão no meu aplicativo que é acionado toda vez que o usuário recebe uma chamada. Agora, quando isso acontece, preciso que o receptor de transmissão invoque um método específico em uma atividade específica. Agora, tentei tornar esse método estático e, portanto, disponível, mas algo me diz que é uma péssima idéia.
Dessa forma, tentei instanciar o receptor de transmissão dentro da minha atividade sem declará-lo no manifesto, mas o problema é: quando o aplicativo está desativado, a atividade não existe e, portanto, não posso invocar meu método.
Portanto, minha pergunta é: como posso chamar esse método quando o receptor de transmissão é acionado, sem torná-lo "público estático"?
Aqui está o meu código de atividade (excluí as partes irrelevantes)
package com.silverfix.ringo.activities;
import com.silverfix.ringo.R;
import com.silverfix.ringo.activities.fragments.DataManagerFragment;
import android.app.ActionBar;
import android.app.Activity;
import android.app.FragmentTransaction;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
public class RingtonesActivity extends Activity{
private DataManagerFragment dataManagerFragment;
private IntentFilter filter;
private BroadcastReceiver phoneCall;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_ringtones);
ActionBar ab = getActionBar();
ab.setDisplayShowTitleEnabled(false);
ab.setDisplayHomeAsUpEnabled(true);
dataManagerFragment = new DataManagerFragment();
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(dataManagerFragment, "DataManagerFragment");
ft.commit();
filter = new IntentFilter();
filter.addAction("android.intent.action.PHONE_STATE");
phoneCall = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
dataManagerFragment.act();
}
};
registerReceiver(phoneCall, filter);
}
}