Существуют компоненты, которые должны быть зарегистрированы при установке приложения (<3.0) или, по крайней мере, когда приложение <b>перешло из остановленного состояния в запущенное (3.0 и ICS), например, ContentProvider
.
По всей видимости, у провайдера нет «конца» своего жизненного цикла, о котором вам нужно (очень) беспокоиться.
Проще говоря, добавив <provider>
к вашему AndroidManifest.xml
:
<provider android:name=".ReceiverProvider"
android:authorities="some.provider.authority.goes.here"
android:exported="true" />
А, для ReceiverProvider
:
public class ReceiverProvider extends ContentProvider {
@Override
public boolean onCreate() {
BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
System.out.println("Headset plug: " + intent);
}
};
IntentFilter filter = new IntentFilter(Intent.ACTION_HEADSET_PLUG);
getContext().registerReceiver(receiver, filter);
return true;
}
@Override
public Cursor query(Uri uri, String[] projection, String selection, String[] selectionArgs,
String sortOrder) {
return null;
}
@Override
public String getType(Uri uri) {
return null;
}
@Override
public Uri insert(Uri uri, ContentValues values) {
return null;
}
@Override
public int delete(Uri uri, String selection, String[] selectionArgs) {
return 0;
}
@Override
public int update(Uri uri, ContentValues values, String selection, String[] selectionArgs) {
return 0;
}
}
Возможно, стоит попробовать.