1

http://ericharlow.blogspot.com/2010/09/experience-multiple-android-activities.htmlで説明されているようTabActivityに、withアクティビティのソリューションを実装しています。これは最適ではないことはわかっていますが、私はすでにこの道をかなり進んでおり、しゃっくりが1つだけ残っています。管理しているスタックの一番上にポップする必要があり(アクティビティIDのリストを使用)、次を使用してこのアクティビティを取得できることを知っています。TabHostString

Activity current = getLocalActivityManager().getActivity(mIdList.get(0));

しかし、私は「見せること」の方法を知りませんcurrent

私はこれができることを知っています:

Activity current = getLocalActivityManager().getActivity(mIdList.get(1))
current.finish();

そして、これは、スタックに少なくとも2つのアクティビティがある場合に望ましい結果をもたらします。ただし、1つしかない場合は、。で非常にひどく失敗しますArrayOutOfBoundsException

特定のアクティビティを「表示」するにはどうすればよいですか?

4

1 に答える 1

1

この方法で、アクティビティスタックの一番上にあるアクティビティを開始してみてください。

List<ActivityManager.RunningTaskInfo> processes1 = activityManager.getRunningTasks(1);
ComponentName componentInfo = processes1.get(0).topActivity;
String classname =processes1.get(0).topActivity.getClassName(); 
String packagename = processes1.get(0).topActivity.getPackageName();
if(classname.equalsIgnoreCase("com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME"))
    {
        Intent intent24 = new Intent(Intent.ACTION_MAIN).addCategory(
        Intent.CATEGORY_LAUNCHER).setClassName("YOUR_PACKAGE_NAME",
        "com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME").addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
        .addFlags(Intent.FLAG_FROM_BACKGROUND).setComponent(new ComponentName("YOUR_PACKAGE_NAME",
        "com.YOUR_PACKAGE_NAME..YOURACTIVITY_NAME"));
        getApplicationContext().startActivity(intent24);
    }
    else
    {
     //DONE SOMETHING HERE...
    }
于 2012-05-23T15:57:20.980 に答える