Android-配置更改后获取原始活动的最佳方式
我有一个Android活动,用户启动一些任务(例如,通过点击按钮),这可能需要一些时间,比如说1毫秒到1分钟之间。它可以是一些网络操作、计算或其他任何事情。我可以使用线程、异步任务或其他工具。我想在任务完成后更改活动中的某些内容,例如显示下载的图像或最佳棋步等。我必须使用Handler或其他等效工具来运行主线程,但它仍然清晰且非常简单。这是我的问题: 获取当前活动对象(调用其方法)的推荐方法是什么?请注意,用户在任务生命周期内可能不会执行任何操作(我希望获取原始活动对象),他也可以通过back键关闭活动(在这种情况下,我希望获取null-即使他第二次重新打开活动),他可以更改配置-例如从纵向模式切换到横向模式(我想获取“活动”的新的-当前实例)。使用,它将启动您的任务,并将结果返回到原始“活动”的实例 然后,您可以检查ResultCode和意图,以确定到底发生了什么(包括用户执行操作的情况) 有关的详细信息,请参阅开发者文档。使用,它将启动您的任务,并将结果返回到原始活动 然后,您可以检查ResultCode和意图,以确定到底发生了什么(包括用户执行操作的情况) 有关的详细信息,请参阅开发者文档。使用,它将启动您的任务,并将结果返回到原始活动 然后,您可以检查ResultCode和意图,以确定到底发生了什么(包括用户执行操作的情况) 有关的详细信息,请参阅开发者文档。使用,它将启动您的任务,并将结果返回到原始活动 然后,您可以检查ResultCode和意图,以确定到底发生了什么(包括用户执行操作的情况)Android-配置更改后获取原始活动的最佳方式,android,multithreading,android-activity,landscape,portrait,Android,Multithreading,Android Activity,Landscape,Portrait,我有一个Android活动,用户启动一些任务(例如,通过点击按钮),这可能需要一些时间,比如说1毫秒到1分钟之间。它可以是一些网络操作、计算或其他任何事情。我可以使用线程、异步任务或其他工具。我想在任务完成后更改活动中的某些内容,例如显示下载的图像或最佳棋步等。我必须使用Handler或其他等效工具来运行主线程,但它仍然清晰且非常简单。这是我的问题: 获取当前活动对象(调用其方法)的推荐方法是什么?请注意,用户在任务生命周期内可能不会执行任何操作(我希望获取原始活动对象),他也可以通过back键
有关的详细信息,请参阅开发人员文档。这听起来像是一个调用了
setRetainInstance(true)
的不可见片段的作业
基本上,您应该将所有任务逻辑移动到一个不创建任何视图层次结构的特殊片段(其onCreateView
应返回null
)。该片段应调用setRetainInstance(true)
很早就开始运行,例如在构造函数中。当您需要运行任务时,只需添加新的片段。此片段生成线程/异步任务并接收结果。然后您可以在片段中使用getActivity
来获取最新的活动实例。如果活动因用户留下back键而被销毁,则片段的<将调用code>onDestroy,因此您可以区分活动是已销毁还是正在重新创建
请小心不要将活动实例存储在片段中的某个位置,以防止泄漏,也不要意外地添加两次片段
有关该方法的详细信息,请参阅。这听起来像是一个调用了
setRetainInstance(true)
的不可见片段的作业
基本上,您应该将所有任务逻辑移动到一个不创建任何视图层次结构的特殊片段(其onCreateView
应返回null
)。该片段应调用setRetainInstance(true)
很早就开始运行,例如在构造函数中。当您需要运行任务时,只需添加新的片段。此片段生成线程/异步任务并接收结果。然后您可以在片段中使用getActivity
来获取最新的活动实例。如果活动因用户留下back键而被销毁,则片段的<将调用code>onDestroy,因此您可以区分活动是已销毁还是正在重新创建
请小心不要将活动实例存储在片段中的某个位置,以防止泄漏,也不要意外地添加两次片段
有关该方法的详细信息,请参阅。这听起来像是一个调用了
setRetainInstance(true)
的不可见片段的作业
基本上,您应该将所有任务逻辑移动到一个不创建任何视图层次结构的特殊片段(其onCreateView
应返回null
)。该片段应调用setRetainInstance(true)
很早就开始运行,例如在构造函数中。当您需要运行任务时,只需添加新的片段。此片段生成线程/异步任务并接收结果。然后您可以在片段中使用getActivity
来获取最新的活动实例。如果活动因用户留下back键而被销毁,则片段的<将调用code>onDestroy,因此您可以区分活动是已销毁还是正在重新创建
请小心不要将活动实例存储在片段中的某个位置,以防止泄漏,也不要意外地添加两次片段
有关该方法的详细信息,请参阅。这听起来像是一个调用了
setRetainInstance(true)
的不可见片段的作业
基本上,您应该将所有任务逻辑移动到一个不创建任何视图层次结构的特殊片段(其onCreateView
应返回null
)。该片段应调用setRetainInstance(true)
很早就开始运行,例如在构造函数中。当您需要运行任务时,只需添加新的片段。此片段生成线程/异步任务并接收结果。然后您可以在片段中使用getActivity
来获取最新的活动实例。如果活动因用户留下back键而被销毁,则片段的<代码>onDestroy将被调用,因此您可以区分