可能重复:
从活动外的类启动意图
我只是想知道可以从POJO类使用intent还是必须在扩展Activity的一个中使用它?如果可以,你会如何实施?
public class DataManager{
public DataManager (){}
public void get ()
{
Intent intent = new Intent (null,Webservice.class);
intent.putExtra("uri", "http://someuri/service/users/id/21001");
startActivity (intent);
}
Run Code Online (Sandbox Code Playgroud)
}
实际上,startActivity()是Activity类的方法.不是任何java类方法.因此,要在其他pojo类中访问此方法,您必须使用Contextactivity.
你可以做点什么,
public class DataManager{
Context mContext;
public DataManager (Context context){
mContext = context;
}
public void get ()
{
Intent intent = new Intent (mContext,Webservice.class);
intent.putExtra("uri", "http://someuri/service/users/id/21001");
mContext.startActivity (intent);
}
}
Run Code Online (Sandbox Code Playgroud)
更新:
有一点需要注意的是你的Intent代码行,
Intent intent = new Intent (null,Webservice.class);
Run Code Online (Sandbox Code Playgroud)
什么是null?您必须将Activity类的引用作为Intent构造函数的第一个参数.检查一下.
那么代码行将是,
Intent intent = new Intent (mContext,Webservice.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
63 次 |
| 最近记录: |