У меня есть приложение, которое работает между различными видами деятельности.Одно действие, мое основное действие, имеет свое поведение, зависящее от того, какое действие в приложении запустило основное действие.Я думал, что смогу записать это в журнал, если бы каждое другое действие добавляло в намерение дополнительную функцию "launcehdFrom", которая содержит строку с именем действия hte, которое вызывает основное действие.Проблема, с которой я столкнулся, состоит в том, что, как только это значение было установлено, оно не может быть переопределено другим действием.Я не нашел хороший простой способ сделать это.Любой совет ??
Следующий код вызывается из onResume () в моей основной деятельности:
private void processIntentRequest(){
Intent intent = getIntent();
ProcessIntentRequestType caller = (ProcessIntentRequestType)intent.getSerializableExtra("launchedFrom");
switch(caller){
case startUpActivity:
load(this.myObj);
break;
case otherActivity:
int uri = integer.parseInt(this.getIntent().getExtras().getString("uri"));
load(this.myObj, uri);
break;
default:
load(this.myObj, 1);
}
Этот код запускает основное действие в первый раз:
public void launchMainActivity(Obj myObj){
Intent launchMain = new Intent(this, mainActivity.class);
login.putExtra("launchedFrom", ProcessIntentRequestType.startupActivity);
startActivity(launchMain);
}
Это код, который запускает основное действие из какого-либо другого действия после того, как оно было загружено по крайней мере один раз при запуске:
protected void launchMainActivity(Obj myObj, HelperObj helper) {
String uri = helper.uri;
Intent mainActivity = new Intent(this, MainActivity.class);
mainActivity.putExtra("uri", uri);
mainActivityputExtra("launchedFrom", ProcessIntentRequestType.otherActivity);
startActivity(mainActivity.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP)
.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT));
finish();
}