Связь между BroadcastReceiver и Activity - Android

В моем приложении есть широковещательный приемник, который срабатывает каждый раз, когда пользователь получает входящий звонок. Теперь, когда это происходит, мне нужен приемник широковещания, чтобы вызвать определенный метод в определенной деятельности. Теперь я попытался сделать этот метод статичным и, следовательно, доступным, но что-то подсказывает мне, что это очень плохая идея.

Соответственно, я попытался создать экземпляр приемника вещания внутри своей деятельности, не объявляя его в своем манифесте, но проблема в том, что когда приложение выключено, действие не существует, и поэтому я не могу вызвать свой метод.

Поэтому мой вопрос - как я могу вызвать этот метод, когда приемник вещания запущен, не делая его "общедоступным"?

Вот мой код активности (я удалил ненужные части)

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);
    }
}

Ответы на вопрос(1)

Ваш ответ на вопрос