0

我想根据我来自的活动在 onCreate() 中执行不同的操作。

我这样做是为了:

Activity A: 
   intent to activity B; 
   intent.putBoolean("name",boolean=false); 
   startActivity B.

Activity B: 
onCreate(){
   Boolean.getBoolean("name"); 
   if(boolean){
   }else{**make this**} 
on the other hand if click on a Button 
   onClick {starts activity C}.

Activity C: 
do things... 
-> if click on a Button -> 
onClick { 
   intent.putBoolean(boolean=true);
   starts ActivityB}

Activity B onCreate(){ 
   if(boolean){**make this**
   } else{}

我的问题:我可以用更好的方式做同样的事情吗?

谢谢

4

1 回答 1

0

您可以使用 Intent 的 putExtra 属性来传递正在启动当前活动的活动的名称。例如,如果活动 A 正在调用 C,那么您将在调用活动中执行此操作:

    Intent intent = new Intent(this, C.class);
    intent.putExtra("activity","A");
    startActivity(intent);

在活动 C 中:

    Intent intent = getIntent();
    String activity = intent.getStringExtra("activity");

现在在字符串活动中,您将获得 A,并且您将知道您来自 A。如果您对 B 执行相同操作,那么您的活动字符串将显示为 B。

如果 C 只能通过 A 或 B 启动,那么您无需再处理任何事情,但如果它可以从 HOME 启动,那么您可能需要在 C 中进行额外检查。

于 2012-07-27T17:22:00.093 回答