不推荐使用startActivityForResult(android.content.Intent,int)'

时间:2020-08-16 10:54:18

标签: android kotlin

startActivityForResult(intent,3021) 

我很久以来一直在使用它,现在不建议使用此方法吗?

1 个答案:

答案 0 :(得分:2)

它确实被弃用了。我试图找出新的出路,并认为我会在这里分享。

现在,我们无需为所有回调覆盖 onActivityResult 并检查我们的请求代码,而是可以使用 registerForActivityResult 分别注册每个回调,该 ActivityResultContracts 接受一个 val previewRequest = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { if (it.resultCode == RESULT_OK) { val list = it.data // do whatever with the data in the callback } } 。 IMO 这是一种比以前更好的方法。

以下是为结果启动活动的示例:

StartActivityForResult

现在我们用 val intent = Intent(this, PreviewFullscreenActivity::class.java) intent.putStringArrayListExtra(AppConstants.PARAMS.IMAGE_URIS, list) previewRequest.launch(intent) 代替

let isHibernating = false; //Global (top level) variable
const Hibernate = (client) => {
    if(!client){ return(false) }
    client.user.setPresence({ //Sets detailed presence
        activity: {
            name: "Hibernating",
            type: "PLAYING"
        },
        status: "idle",
        afk: true
    });
    isHibernating = true;
}