【问题标题】:startActivity() but do not show itstartActivity() 但不显示
【发布时间】:2018-09-20 03:11:38
【问题描述】:

我有一个媒体播放器应用程序,我正在尝试处理事件,例如当您接到电话时。我可以让它正确停止并终止服务。然后我需要切换回主要活动,这样当用户完成电话通话时,他们可以重新选择要播放的电台。我遇到的问题是,当我使用 startActivity(intent) 切换活动时,它会显示在电话拨号器前面——这不是一个好的用户体验。 那么,如何才能让我的应用重置回正确的活动而不显示在另一个应用前面呢?

private BroadcastReceiver phoneReceiver = new BroadcastReceiver()
{

    @Override
    public void onReceive(Context context, Intent intent)
    {
        //stop the play service
        Intent stopPlayingService = new Intent(context, Play.class);
        stopService(stopPlayingService);
        //switch back to the main screen
        Intent showMain = new Intent(context, MouseWorldRadioActivity.class);
        showMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        //showMain.addFlags(Intent.);  not sure whats needed here
        startActivity(showMain);

    }

};

【问题讨论】:

  • 您使用什么编程语言和/或 SDK?我们需要了解这些详细信息才能为您提供帮助。这在我看来就像 ActionScript 3,但它可以是任意数量的语言。
  • 你想要的是一种在电话结束后重新启动服务的方法。我不熟悉这种特殊情况,但我猜您应该在停止服务之前保存服务状态,然后听“呼叫结束”意图再次重新启动服务。这样您就不必要求用户重新选择电台。有关详细信息,请参阅stackoverflow.com/questions/2477889/…
  • JasonMC920-抱歉,我确实将它标记为 Android,所以我只是认为它只能与 Java 相关。

标签: android


【解决方案1】:

你可以试试:

 showMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
 showMain.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
 context.startActivity(showMain);

【讨论】:

  • 请按 ctrl+space 看它是否正确,但它是标志重新排序到前面
  • Aashish——我仍然得到相同的结果——我的应用程序在我接听电话后立即显示在电话应用程序的前面。
  • 在 onDestroy() 方法中注销接收者
猜你喜欢
  • 1970-01-01
  • 2018-10-14
  • 2020-10-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多