Android 为什么可以';我们不能称之为新的活动()

Android 为什么可以';我们不能称之为新的活动(),android,android-activity,Android,Android Activity,所以,有点像noob的情况,但是今天,出于好奇,我试着做一些事情,比如: new Activity().runOnUiThread(新的可运行{…}) 主要是因为我实际上无法访问任何活动(在第三方库中工作)。我只有applicationContext,我认为它不允许我进行runOnUiThread调用 所以我想我有点想知道是否有一种方法可以伪造一个微创活动,这样我就可以在UI线程上运行一些东西(或者做其他事情,比如弹出对话框等等) 如果没有,是否有人知道只做新活动()有什么问题?(我的意思是,除

所以,有点像noob的情况,但是今天,出于好奇,我试着做一些事情,比如:

new Activity().runOnUiThread(新的可运行{…})

主要是因为我实际上无法访问任何活动(在第三方库中工作)。我只有applicationContext,我认为它不允许我进行
runOnUiThread
调用

所以我想我有点想知道是否有一种方法可以伪造一个微创活动,这样我就可以在UI线程上运行一些东西(或者做其他事情,比如弹出对话框等等)


如果没有,是否有人知道只做
新活动()
有什么问题?(我的意思是,除了这样一个事实,是的,我会得到一个空指针,因为我没有设置我的基本上下文,因为活动的
onCreate
从未被调用)。如果可能的话,我愿意接受一个能够提供更多细节和更多“上下文”的答案(没有双关语)

活动是由Android操作系统管理的,不打算以这种方式使用,这样做意味着破坏API契约,所以不要期望它正常运行


如果您想显示一些对话框,只需创建一个具有透明背景的活动,对用户来说,它将与浮动在另一个屏幕上的单个对话框相同。

活动由Android操作系统管理,不打算以这种方式使用,这样做将意味着破坏API契约,因此不要期望它正常运行



如果你想显示一些对话框,只需创建一个背景透明的活动,对用户来说,它就像漂浮在另一个屏幕上的单个对话框一样。

nice!我忘了处理程序。你知道弹出一个对话框是如何工作的吗?您提供的
context
大概是
getApplicationContext()
,在我的代码中,它可以通过视图访问。我之所以执行
new Activity()
,是为了以后可以执行
…=新建AlertDialog.Builder(新建活动())抱歉,不能说:运行代码会更快。实际上,如果你有一个视图实例,你可以使用视图的方法“post”在UI线程上运行代码!我忘了处理程序。你知道弹出一个对话框是如何工作的吗?您提供的
context
大概是
getApplicationContext()
,在我的代码中,它可以通过视图访问。我之所以执行
new Activity()
,是为了以后可以执行
…=新建AlertDialog.Builder(新建活动())抱歉,不能说:运行代码会更快。实际上,如果你有一个视图实例,你可以使用视图的方法“post”在UI线程上运行代码。你能给我们你提供的代码的方法签名吗?如果我们知道传递到您的方法中的内容,这将非常有用。当您正在开发库时,这应该意味着应用程序本身必须调用您的库,不是吗?你为什么不接受一个上下文对象作为你的函数参数,这应该可以解决你所有的问题呢?你是对的,它更像是设计中的遗留问题:我以前没有要求上下文,所以在一个非主要的新版本中突然要求上下文会很尴尬。你能给我们你提供的代码的方法签名吗?如果我们知道传递到您的方法中的内容,这将非常有用。当您正在开发库时,这应该意味着应用程序本身必须调用您的库,不是吗?你为什么不接受一个上下文对象作为你的函数参数,这应该可以解决你所有的问题呢?你是对的——这更像是设计中的遗留问题:我以前没有要求上下文,所以在一个非主要的新版本中突然要求上下文是很尴尬的。很好的建议,但这也会让他们的活动成为背景,而他们可能没有预料到会发生
onPause
event任何行为良好的Android应用程序在任何给定时间都应该预料到onPause;)我完全同意,如果我在构建应用程序,我会对此负责。但这一次,我在建一个图书馆,不能假设任何事情:'(对于库,另一种方法是提供集成钩子,用于集成要调用的应用程序。例如,集成库可以调用你的库,以检查你的库是否能够处理特定的onCreateDialog事件,等等。是的,你有一个很好的解决方案,通常情况下,我只是从一开始就搞砸了。(不能指望人们仅仅因为我搞砸了就适应新的图书馆)谢谢。有点不错的建议,但这也会让他们的活动成为背景,而他们可能没有预料到会有一个
onPause
event任何表现良好的安卓应用程序在任何给定时间都应该期待onPause;)我完全同意,如果我在构建应用程序,我会对此负责。但这次我在构建一个库,不能做任何假设:'(对于库,另一种方法是提供集成钩子,用于集成要调用的应用程序。例如,集成库可以调用你的库,以检查你的库是否能够处理特定的onCreateDialog事件,等等。是的,你有一个很好的解决方案,通常情况下,我只是从一开始就搞砸了。(不能因为我搞砸了就指望人们适应新图书馆)谢谢。
new Handler(context.getMainLooper()).post(new Runnable()
{
    @Override
    public void run()
    {
    }
});