在拨打电话号码时启动延迟意图

时间:2011-03-10 09:30:02

标签: android android-intent

我正在使用以下代码拨打电话号码123456,我遇到的问题是在第一个电话仍在呼叫时,使用新号码启动另一个电话并延迟2-3秒

我已经尝试过Thread.sleep(),Handler,startActivityForResult()等等,但他们都在等我按下后退按钮,所以我在开始第二次调用之前回到我的应用程序中。

String num = "tel:123456";

Intent intent = new Intent(Intent.ACTION_CALL);  
intent.setData(Uri.parse(num));  
startActivity(intent);

编辑:

我在开始第二次调用之前添加了以下内容,并且接口就像它应该正常工作一样。

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);

2 个答案:

答案 0 :(得分:0)

当您的活动被置于后台时,它的主线程不再处于活动状态,因此您尝试执行的操作不起作用。

尝试启动后台线程,然后从那里执行代码。

答案 1 :(得分:0)

使用处理程序:

Handler delayedCallHandler = new Handler() {
  public void handleMessage(Message msg) {
    String num = (String) msg.obj;

    Intent intent = new Intent(Intent.ACTION_CALL);
    intent.setData(Uri.parse(num));
    startActivity(intent);`
  }
};

在您的代码中,您可以延迟启动活动:

delayedCallHandler.sendMessage(
    delayedCallHandler.obtainMessage(0, "tel:123456"), // msg.obj = the number to call
    2000); // 2 seconds