isInitialStickyBroadcast()
, очевидно, доступен только после 2.0 (SDK 5).
Я получаю эту ошибку:
"Uncaught handler: выход из основного потока из-за необработанного исключения
java.lang.VerifyError "
Это происходит только на 1.6. У Android 2.0 и выше проблем нет, но это главное.
Я не могу поймать ошибку / исключение (java.lang.VerifyError), и я знаю, что это вызвано вызовом isInitialStickyBroadcast (), который недоступен в SDK 4, поэтому он включен в проверку SDK.
Мне просто нужен этот BroadcastReceiver, чтобы он работал на 2.0+ и не ломался в 1.6, это приложение на рынке, функция UNDOCK необходима для пользователей на 2.0+, но, очевидно, не на 1.6, но есть довольно значительное число пользователей все еще на 1.6.
Вот легкая для чтения версия части кода, которую я использую. Обратите внимание, что он включен в проверку SDK для запуска только на 2.0+, но VerifyError все еще отображается.
private BroadcastReceiver mUndockedReceiver = new BroadcastReceiver()
{
@Override
public void onReceive(Context context, Intent intent)
{
//FROM ECLAIR FORWARD, BEFORE DONUT THIS INTENT WAS NOT IMPLEMENTED
if (Build.VERSION.SDK_INT >= 5)
{
if (!isInitialStickyBroadcast()) {
//Using constant instead of Intent.EXTRA_DOCK_STATE to avoid problems in older SDK versions
int dockState = intent.getExtras().getInt("android.intent.extra.DOCK_STATE", 1);
if (dockState == 0)
{
finish();
}
}
}
}
};