在我的主要活动中(我的应用程序中发生了所有事情)我现在只调用另外两个活动,最后通过按下按钮回拨到我的MainActivity。如何区分这两个Intent回到我的MainActivity?根据我在两个单独的活动中所做的事情,我有一些我希望进行的单独操作。
继承我尝试的内容:
Intent intent = getIntent();
String s_message = intent.getStringExtra(AppSettings.EXTRA_MESSAGE);
String f_message = intent.getStringExtra(ViewFavorites.EXTRA_MESSAGE);
if(s_message != null) {
//do something
} else if (f_message != null) {
//do something
}
但是当我运行我的应用程序时,我发现当退出这两个活动时,他们正在采用我不希望他们的方法......我是否会出错?
答案 0 :(得分:0)
为每个意图设置不同的ACTION,然后使用if(getIntent()。getAction()。equals(ACTION))来区分意图。
public class MainActivity extends Activity {
public static final String ACTION_ONE = "com.yourpackage.ACTION_ONE";
public static final String ACTION_TWO = "com.yourpackage.ACTION_TWO";
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
Intent intent = getIntent();
if(intent.getAction() != null){
if(intent.getAction.equals(ACTION_ONE){
//DO SOMETHING
} else if (intent.getAction.equals(ACTION_TWO){
//DO SOMETHING
}
}
}
.....
}
然后当您以意图开始主要活动时:
Intent intent = new Intent(MY_CURRENT_CONTEXT, MainActivity.class); //Or MainActivity subclass
添加
intent.setAction(ACTION_ONE);
或任何特定于您的意图所要完成的行动。
答案 1 :(得分:0)
我所做的只是在我的传递Extra
中设置一个Intent
然后进行比较。像这样的东西。创建Intent
时添加Extra
以与
intent.putExtra("source", "appSettings");
然后在Activity
检查该值是什么
Intent intent = getIntent();
String source = intent.getStringExtra("source"); // get that value here
if(s_message != null) {
if ("appSettings".equals(source)){
//do something
} else if (viewFavorites.equals(source)) {
//do something else
}
}
您可以使用此变体来指定Extra
的方式,但这是一个适合我的简单示例,尤其是当只有少数Activites
将调用此之一。