У меня есть широковещательный приемник в моем приложении, который запускается каждый раз, когда пользователь получает входящий звонок. Теперь, когда это произойдет, мне нужен широковещательный приемник для вызова конкретного метода в конкретном действии. Теперь я попытался сделать этот метод статическим и, следовательно, доступным, но что-то говорит мне, что это очень плохая идея.
Соответственно, я попытался создать экземпляр вещательного приемника внутри своей активности, не объявив его в своем манифесте, но проблема в том, что когда приложение отключено, активность не существует и поэтому я не могу вызвать мой метод.
Итак, мой вопрос: как я могу вызвать этот метод при запуске широковещательного приемника, не делая его "public static"?
Вот мой код активности (я удалил ненужные части)
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);
}
}