当前位置: 首页 > 知识库问答 >
问题:

当一个活动处于画中画模式时,有什么方法可以杀死另一个活动吗?

寿意远
2023-03-14

我有两个活动活动活动A和活动B(这个激活了点阵模式),当活动B处于点阵模式时,活动A来到前台,现在我想从活动A完成/摧毁/杀死活动B有什么办法吗?

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
        val supportsPIP = context!!.packageManager.hasSystemFeature(PackageManager.FEATURE_PICTURE_IN_PICTURE)
       
        if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.O) {
            if (supportsPIP) {
                enterPictureInPictureMode(mPictureInPictureParamsBuilder!!.build())
            }
        }

    }

共有2个答案

满昊然
2023-03-14

另一种方法是将对活动的引用保存在一个singleton中,当您想要终止它时,您可以调用< code>finish()并将引用再次设置为null。

松秦斩
2023-03-14

检查此答案后https://stackoverflow.com/a/56896347/13373099我意识到,我所要做的只是使用LocalBroadcastManager,如果有人在实现这一点上遇到困难,下面是我所做的

在活动B中

私有val mRecencer=对象:BroadcastRecencer(){

override fun onReceive(context: Context, intent: Intent?) {
intent?.let { intent ->
        if (intent.action == "FINISH_ACTIVITY") {
            
            finish(); // finish/kill activity also destroys the pip
            
        }}
}
    
    

现在注册听众

    LocalBroadcastManager.getInstance(this).registerReceiver(mReceiver,  IntentFilter("FINISH_ACTIVITY));

在活动中

只需发送带有意图行动的广播“完成活动”

 val intent = Intent("FINISH_ACTIVITY")
 LocalBroadcastManager.getInstance(this).sendBroadcast(intent)
 类似资料:
  • 我使用startActivity(Intent)在我的Android应用程序中创建一个新活动。 有可能扼杀其中一项活动吗?如果有,如何扼杀? 我想要这样 Activity4->Activity1->关闭应用程序

  • 我试图通过按cardview开始另一项活动,cardview有一个朋友查找id。但是当我写回家时。java它给了我setOnClickListener中的问题。在homeActivity中,它告诉我无法解析“homeActivity”中的方法“homeActivity”。因为

  • 在SO上也有类似的问题,但没有一个对我有效。 我想在Activity1中获取被点击的图像并在Activity2中显示它。 我获取被点击图像的图像id如下所示: 并通过意图传递给另一个活动。 任何帮助都很感激。

  • 假设我有活动A和活动B,点击按钮后,我们可以从活动A转到活动B。但是我想要的是,单击按钮后,活动A的20%(右侧)仍然在屏幕上可见,活动B的100%是可见的,所以总屏幕分为活动A的20%和活动B的80%。当我单击20%可见活动A的任何地方时,我应该能够转到活动A。我如何在Android系统中实现这一点。

  • 我想把意图转移到Xamarin.Android中的另一个活动。基本上,我需要Intent.data和Intent.clipdata到另一个活动,所以我使用下面的代码来传输Intent,但我不知道检索它的正确方法。 下面是Main Activity中的代码 在第二活动中 如何在第二个活动中检索意图?

  • 我试图将图像从一个活动发送到另一个活动,但我不知道如何设置ImageView。