У меня есть приемник вещания в моем приложении, который запускается каждый раз, когда пользователь получает входящий звонок. Теперь, когда это произойдет, мне нужен широковещательный приемник для вызова конкретного метода в конкретном действии. Теперь я попытался сделать этот метод статическим и, следовательно, доступным, но что-то говорит мне, что это очень плохая идея.Связь между 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);
}
}
, когда и принять вызов ваш applicaiton это превращается в background.so, что и будет делать с деятельностью (если ур приложение в фоновом режиме) ?? – KomalG
Этот метод обязательно должен быть внутри класса 'Activity'? – mangusta
Что этот метод будет делать? – Chandrakanth