如何开始活动?

时间:2011-07-14 19:58:04

标签: android inheritance android-activity

假设我有一个Android应用程序,当它收到包含一些预先指定的数据(某些代码或某物)的消息时,会启动浏览器并提供一些URL

为此,我的类继承了broadcastReceiver类(以接收消息)。 现在,一旦它收到一个消息,它需要启动另一个活动,即浏览器,为此,同一个类也需要继承Activity类。但这是不可能的,一个类不能继承其他2个类。

我的问题看起来很像,

import android.content.broadCastReceiver;
import android.app.Activity;

public class sms extends broadCastReceiver{

 onReceive(){

  ....
  ....
  here it needs to launch another activity

  }
}

有谁能建议我如何实现这个......? 我尝试在里面创建一个Activity子类的实例并调用startActivity方法,但它不起作用

2 个答案:

答案 0 :(得分:3)

启动活动的方法是aContext.startActivity(new Intent(aContext, MyNewActivity.class));请确保在清单中放置正确的声明。

Look here.

为了澄清,您可以使用上下文启动活动。因此,只需保留一个短期参考,你应该没事。

编辑:

您需要引用可用的上下文来创建活动。然后执行以下操作(使用传递的引用!

Intent i = new Intent(passedContext, MyNewActivity.class);
i.setFlags(Context.FLAG_ACTIVITY_NEW_TASK);
passedContext.startActivity(i);

答案 1 :(得分:0)

在这里,我可以使用

启动一项新活动
Intent i = new Intent(Context, MyNewActivity.class);
i.setFlags(Context.FLAG_ACTIVITY_NEW_TASK);
Context.startActivity(i);

这里,context被传递给broadCastReceiver的onReceive方法作为参数,我可以使用该上下文本身。我不能在这里使用getBaseContext方法。