Ich stecke mit einem interessanten Problem fest: Ich habe eine Launcher-ähnliche Aktivität mit Theme.NoDisplay
(keine UI), die verschiedene Aktivitäten abhängig von einigen Bedingungen starten sollte und obwohl ich es bin startActivity()
aufrufen, wird es keine von ihnen starten, wenn die App über Launcher-Symbol gestartet wurde (es startet LauncherActivity
, aber dann stirbt ohne Fehler/Ausnahmen).Ich konnte keine andere Aktivität vom Launcher-Typ starten Aktivität
JEDOCH
Wenn ich LauncherActivity
über ADB oder fügen Sie eine Verzögerung startActivity()
Start scheint es ganz gut zu funktionieren.
Hier ist ein Code-Snippet.
public class LauncherActivity extends Activity {
private Handler handler = new Handler();
private SharedPreferences preferences;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preferences = getSharedPreferences(App.getContext().getString(R.string.preferences_name), MODE_PRIVATE);
int pesel = preferences.getInt(App.getContext().getString(R.string.pref_pesel), 0);
String password = preferences.getString(App.getContext().getString(R.string.pref_password), "");
Intent intent;
if (pesel != 0 && !password.isEmpty()) {
// TODO: server-side password check
intent = new Intent(this, MainActivity.class);
} else {
intent = new Intent(this, RegisterActivity.class);
}
Intent startIntent = getIntent();
intent.setAction(startIntent.getAction());
intent.setFlags(startIntent.getFlags());
if (startIntent.getExtras() != null)
intent.putExtras(startIntent.getExtras());
final Intent readyIntent = intent;
/*
THIS DOENS"T WORK (WORKS IF STARTED VIA ADB THOUGH)
*/
startActivity(readyIntent);
/*
THIS HOWEVER DOES WORK (ALWAYS)
*/
handler.postDelayed(new Runnable() {
@Override
public void run() {
startActivity(readyIntent);
}
}, 5000);
finish();
}
}
zeigen Sie uns Ihr Manifest? – t0mm13b