Ich möchte eine Anwendung entwickeln, die am Anfang den Wert einer Variablen überprüft und basierend auf diesem Wert die Aktivität A oder die Aktivität B startet, etwa so :Der beste Weg, um die eine oder andere Aktivität auf Basis einer Variablen zu starten
protectec void onCreate(...){
boolean b = checkVariable();
if(b){
startActivityA();
} else {
startActivityb();
}
}
Was
Dies ist ich mache die Methode, die ich zur Zeit umgesetzt haben:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_limitation);
varChecker = new VarChecker(this);
if(varChecker.getRemainingUses() <= 0){
limitReached();
} else if(varChecker.isFirstTime()){
firstTime();
} else {
startMainActivity();
}
}
Dies ist eine Aktivität, die das erste Mal die applicat gezeigt werden müssen Ion wird ausgeführt. Sonst muss es, abhängig vom Ergebnis getRemainingUses()
, die Aktivität A oder die Aktivität B automatisch starten.
Die Frage
Gibt es eine Möglichkeit zu tun, was ich will, ohne die Notwendigkeit, eine neue Aktivität erstellen, speziell die super.onCreate(savedInstanceState)
und die setContentView(R.layout.activity_limitation)
zu vermeiden?
statt Aktivitäten sollten Sie Fragmente verwenden, die –
ersetzt werden sollen, weiß ich nicht, ob es möglich ist, super.onCreate() zu überspringen, aber Sie können setContentView() und rufen finish() überspringen und Zurückkehren, nachdem Sie Ihre zweite Aktivität gestartet haben. –
Nehmen Sie nur eine Aktivität und fügen Sie basierend auf Ihren Berechnungen Fragmente zu dieser Aktivität hinzu. Aktivitäts-Fragment ist besser als Aktivität-Aktivität in einem Sinne, dass deine Aktivität diese Sache nicht nur ausführen wird. –