Android - 有没有办法告诉后退按钮带你到哪个Intent?

时间:2012-04-27 03:06:07

标签: android

我正在覆盖这个功能:

    @Override
    public boolean onKeyUp(int keyCode, KeyEvent event)

但有没有办法告诉哪个Intent或屏幕后退按钮即将带给用户?

3 个答案:

答案 0 :(得分:2)

您最好将信息添加到启动当前活动的意图中。

活动A

    Intent lIntent = new Intent();
    lIntent.putExtra( EXTRAS_ACTIVITY_KEY, ACTIVITY_IDENTIFIER );
    startActivitiy...

活动B

    public boolean onKeyUp(int keyCode, KeyEvent event){
           Intent lIntent = getIntent();
           if(lIntent.hasExtra(EXTRAS_ACTIVITY_KEY) &&
                   ACTIVITY_IDENTIFIER.equals(lIntent.getStringExtra(EXTRAS_ACTIVITY_KEY)){
                   // Great we know that it was a Activity A...
                   ... your code here....
           }

答案 1 :(得分:2)

List<CharSequence> theActivityTrace = getActivityTrace(null);

这个函数返回堆栈中的活动列表,你可以调用上面的方法,如上所示amd mAct是你当前的上下文。

public LinkedList<CharSequence> getActivityTrace(LinkedList<CharSequence> aTrace) {
    if (aTrace==null)
        aTrace = new LinkedList<CharSequence>();
    aTrace.add(mAct.getLocalClassName()+" ("+mAct.getTitle()+")");
    if (mAct.getCallingActivity()!=null)
        aTrace.add(mAct.getCallingActivity().toString()+" ("+mAct.getIntent().toString()+")");
    else if (mAct.getCallingPackage()!=null)
        aTrace.add(mAct.getCallingPackage().toString()+" ("+mAct.getIntent().toString()+")");

    return aTrace;
}

答案 2 :(得分:1)

您可以使用ActivityManager从活动堆栈中检索它。