0

我想知道是否可以抽象一个 startActivity 调用?我想要做的是抽象以下内容:

        Handler handler = new Handler(); 
    handler.postDelayed(new Runnable() { 
         public void run() { 
             startActivity(nextIntent); 
         } 
    }, 2000); 

我之前用适当的类和适当的附加功能设置了意图 nextIntent 。这个想法是我会将意图从开始延迟 2 秒。如果我直接从我的活动中调用上面的代码,它就可以正常工作。我想做的是抽象上面的代码,这样我就可以从这样的任何活动中调用它:

DelayActivity.StartDelayedActivity(2,nextIntent);

这将在 2 秒延迟后启动下一个 Activity nextIntent。但是,当我尝试对此进行编码时,出现以下错误:

The method startActivity(Intent) is undefined for the type new Runnable(){}

我看过这样的主题:是否可以从静态方法调用 startActivity()?,但该线程定义了方法中的意图。我希望能够接受我已经设置的意图并通过它。我正在寻找的可能吗?如果是这样,我需要进行哪些更改?非常感谢。

4

1 回答 1

0

我对你想要达到的目标有点怀疑。你真的有足够的活动,这是有用的吗?听起来您正在尝试提供“寻呼机”类型的服务。那么为什么不这样做呢?

此外,您可能并不真的想创建自己的Handler,您可能只想将其发布到 Activity 的 GUI 线程(真的!)。所以我会重新考虑你的设计。

但是,如果您只想忽略所有这些,那么您直接问题的答案是您应该传递 a Context(例如this来自您的Activity实例的 a )您应该调用startActivity.

于 2013-01-23T16:19:57.483 回答