Ich habe einen Broadcast-Empfänger in meiner App, die jedes Mal ausgelöst wird, wenn der Benutzer einen eingehenden Anruf erhält. Jetzt, wenn es passiert, brauche ich den Broadcast-Empfänger, um eine bestimmte Methode in einer bestimmten Aktivität aufzurufen. Nun habe ich versucht, diese Methode statisch und damit verfügbar zu machen, aber etwas sagt mir, dass es eine sehr schlechte Idee ist.Kommunikation zwischen BroadcastReceiver und Aktivität - Android
Dementsprechend habe ich versucht, den Broadcast-Empfänger innerhalb meiner Aktivität instanziieren, ohne es in meinem Manifest zu deklarieren, aber das Problem ist - wenn die App ausgeschaltet ist, ist die Aktivität nicht vorhanden und daher kann ich meine Methode nicht aufrufen.
Also meine Frage ist - Wie kann ich diese Methode aufrufen, wenn der Rundfunkempfänger ausgelöst wird, ohne es "öffentlich statisch" zu machen?
Hier ist meine Aktivitätscode
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);
}
}
, wenn u die Ihre applicaiton erhalten nennen, ist dann auch background.so was u mit Aktivität zu tun (wenn ur App im Hintergrund ist) ?? – KomalG
Muss diese Methode unbedingt innerhalb der 'Activity' Klasse sein? – mangusta
Was wird diese Methode tun? – Chandrakanth