在运行时完成目标活动

时间:2014-07-14 02:32:02

标签: android android-intent android-activity

我有一个ACTION_CALL意图活动,我想用代码停止。

问题存在于2.3.3当我结束通话时,它会转到通话记录,而不是直接返回到适用于4.1 +的应用程序。

我发现您可以使用finishActivity(requestCode)来完成对我的代码无效的活动。

这是我的代码:

    startActivityForResult(callIntent, 2);


    // when I call finishActivity here it works fine and activity ends immediately
    // finishActivity(2);

    if (endCall) 
    {
        callEndTimer = new CountDownTimer(10000, 1000) //End call after 10 seconds
        {
            public void onTick(long millisUntilFinished)
            {

            }

            public void onFinish()
            {
                // end the call

                TelephonyManager tm = (TelephonyManager) getApplicationContext().getSystemService(
                        Context.TELEPHONY_SERVICE);

                Class<?> c;
                try
                {
                    c = Class.forName(tm.getClass().getName());
                    Method m = c.getDeclaredMethod("getITelephony");
                    m.setAccessible(true);
                    Object telephonyService = m.invoke(tm);
                    c = Class.forName(telephonyService.getClass().getName());
                    m = c.getDeclaredMethod("endCall");
                    m.setAccessible(true);
                    m.invoke(telephonyService);

                    // Call ends here so I know the code is working
                    // When I call finishActivity(2) here the activity doesn't end and continues to go to the call logs
                    finishActivity(2);

                } catch (Exception e)
                {
                    e.printStackTrace();
                }
            }
        }.start();
    }

有关为什么我不能结束活动的任何想法?

1 个答案:

答案 0 :(得分:0)

如果您在班级中延长Activity,只需拨打finish(),即可停止活动。