Context.startService(intent)
和startService(intent)
有什么区别?使用哪个有影响吗?
只有一个startService()
方法。 startService()
是Context
类的方法,可用于Activity
或Service
等Context
子类。
正如Commonsware所说,只有一个startService()
方法,即Context.startService(intent)
。
您的主活动程序本身就是Context
的一个实例,因此不需要使用Context
显式调用该方法(startService)。
这就像在类内部调用类的方法一样。
解释
在Android中,每个人都知道如何使用Adapter
。我们可以为它们创建单独的类。这将使我们的编码更简单易懂。但是当我们单独创建这些类时,它们需要一个上下文(代表调用
)。因此,在这种情况下,我们将活动的上下文传递给它们的构造函数。这样,Android就知道我们是代表哪个活动进行调用。
我们不能调用
getSystemService(Context...)//blah bhal
在单独的适配器类中,但我们可以在适配器构造函数中传递上下文并像这样调用它。
context.getSystemService(Context....)//
像这样调用您的适配器
ArticleAdapter adapter = new ArticleAdapter(context, list);
list_of_article.setAdapter(adapter);
并且像这样获取上下文...
ArticleAdapter.class
public class ArticleAdapter extends BaseAdapter
{
Context context;
ArrayList<HashMap<String, String>> list;
LayoutInflater inflater;
public ArticleAdapter(Context context,
ArrayList<HashMap<String, String>> list)
{
this.context = context;
this.list = list;
inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}
@Override
public int getCount()
{
return list.size();
}
@Override
public Object getItem(int position)
{
return list.get(position);
}
@Override
public long getItemId(int position)
{
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent)
{
View view = convertView;
if (view == null)
{
view = inflater.inflate(R.layout.item_article, parent, false);
}
HashMap<String, String> map = list.get(position);
TextView Title = (TextView) view.findViewById(R.id.item_title);
TextView ByWhom = (TextView) view.findViewById(R.id.item_bywhom);
ImageView Img = (ImageView) view.findViewById(R.id.item_img);
ProgressBar bar = (ProgressBar) view.findViewById(R.id.progressBar1);
TextView TextUnderImg = (TextView) view
.findViewById(R.id.item_text_under_imag);
TextView Comments = (TextView) view.findViewById(R.id.item_comment);
TextView TableView = (TextView) view.findViewById(R.id.item_tableview);
TextView ReadMore = (TextView) view.findViewById(R.id.item_readmore);
context.getSystemService(Context.CONNECTIVITY_SERVICE);// if you want these service you must have to call it using context.
Title.setText(map.get("title"));
ByWhom.setText(map.get("publishdate"));
return view;
}
}