我希望有一个针对android 2.1,api级别7的应用程序,当用户点击一个c2dm通知时,它能同时启动多个活动。这是我当前用于启动活动的方法:

public static PendingIntent getActivity (Context context, int requestCode, Intent intent, int flags)

此方法只允许我在堆栈上放置一个活动。我真正想做的是使用这种方法:
public static PendingIntent getActivities (Context context, int requestCode, Intent[] intents, int flags)

此方法报告它仅适用于API级别11,即Android 3.0。我不想破坏与2.1的向后兼容性。有谁能建议我如何在不依赖android 3.0的情况下实现这个效果?我试过用这种新方法,但似乎还没有。

最佳答案

您要做的是有一个单独的活动作为警报的目标,并从那里构建意图堆栈,如下所示。这可能很容易被概括成类似“getactivities”的东西——可惜它不在compat库中。

public class AlarmActivity extends Activity {

  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    Intent intent = new Intent(this, MainActivity.class);
    intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
    startActivity(intent);

    intent = new Intent(this, ChildActivity.class);
    startActivity(intent);

    finish();
  }
}

07-28 03:34
查看更多