import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import java.util.HashMap;
public class ShellActivity extends AppCompatActivity {
public interface ActivityResultHandler {
void onActivityResult(int resultCode, Intent intent);
}
public void startActivityForResult(Intent intent, ActivityResultHandler handler) {
int nextRequestCode = ++customRequestCode;
activityResultHandlers.put(nextRequestCode, handler);
super.startActivityForResult(intent, nextRequestCode);
}
public void onActivityResult(int requestCode, int resultCode, Intent intent) {
ActivityResultHandler handler = activityResultHandlers.remove(requestCode);
if (handler != null) {
handler.onActivityResult(resultCode, intent);
return;
}
super.onActivityResult(requestCode, resultCode, intent);
}
private int customRequestCode = 37565;
final HashMap<Integer, ActivityResultHandler> activityResultHandlers =
new HashMap<>();
}
showWithoutCast()
он вручную удалил инструкцию IL "castclass".
Исключение — это и есть уведомление для программиста. Как эти уведомления нужно обрабатывать, написал GavriKos в своем ответе.
А когда программист не хочет уведомления обрабатывать — тогда "роняется", как вы пишете, основное окно.