假设我有一个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方法,但它不起作用
答案 0 :(得分:3)
启动活动的方法是aContext.startActivity(new Intent(aContext, MyNewActivity.class));
请确保在清单中放置正确的声明。
为了澄清,您可以使用上下文启动活动。因此,只需保留一个短期参考,你应该没事。
编辑:
您需要引用可用的上下文来创建活动。然后执行以下操作(使用传递的引用!)
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方法。