所以,我是Android中的一个菜鸟,但我搜索了很多,我找不到解决方案:
在我的导航抽屉中,每行都会打开一个新意图。如何检查某个意图是否处于打开/活动状态,以便我使用它而不是创建新意图?
我尝试使用此解决方案:
但我的问题是抽屉每次打开同一个班级,但每个班级都有不同的"额外的。"例如:
public void itemClicked(View view, int position) {
Intent intent=null;
switch (position) {
case 1:
intent = new Intent(getActivity(), DisplayActivity.class);
intent.putExtra("ARGUMENT","SECTION 1");
break;
case 2:
intent = new Intent(getActivity(), DisplayActivity.class);
intent.putExtra("ARGUMENT","SECTION 2");
break;
case 3:
intent = new Intent(getActivity(), DisplayActivity.class);
intent.putExtra("ARGUMENT","SECTION 3");
break;
}
startActivity(intent);
}
如何检查该类及其他附加内容的意图是否已打开?
谢谢!
答案 0 :(得分:2)
您可以使用shared preferences
或Application
类的范围来存储可见的最后/当前活动
如果您为应用扩展课程,或者您要将设备定位为 API等级14或以上,则可以实施ActivityLifecycleCallbacks。
示例代码
public class MyApplication extends Application implements ActivityLifecycleCallbacks {
private static boolean isMySomeActivityVisible;
@Override
public void onCreate() {
super.onCreate();
// Register to be notified of activity state changes
registerActivityLifecycleCallbacks(this);
....
}
@Override
public void onActivityResumed(Activity activity) {
if (activity instanceof YOURACTIVITY) {
isMySomeActivityVisible = true;
}
}
@Override
public void onActivityStopped(Activity activity) {
if (activity instanceof YOURACTIVITY) {
isMySomeActivityVisible = false;
}
}
// Other state change callback stubs
....
}
答案 1 :(得分:1)
您还可以查看您使用的android中的启动模式。 我认为这将很好地满足您的要求。 供大家参考看看 http://www.intridea.com/blog/2011/6/16/android-understanding-activity-launchmode