Context.startService(intent)
和startService(intent)
之间有什么区别,使用哪一个是否重要?
答案 0 :(得分:7)
只有一种startService()
方法。 startService()
类是Context
类的一种方法,可用于Context
的所有子类,如Activity
或Service
。
答案 1 :(得分:2)
Commonsware表示只有一个startService()
。那是Context.startService(intent)
。
您的主要活动计划本身是Context
的实例,您无需明确使用Context
调用方法(startService)。
就像在类本身中调用类的方法一样。
答案 2 :(得分:0)
<强>解释强>
Android 中的每个人都可能知道如何使用Adapter
。我们可以为他们创建单独的类。它将使我们的编码更容易处理和理解。但是当我们单独创建这些类时。他们需要上下文(Calling on behalf
)。所以在这种情况下,我们在构造函数中传递活动的上下文。以这种方式,Android知道我们代表哪个活动调用它。
我们无法致电
getSystemService(Context...)//blah bhal
在单独的适配器类中,但我们可以在Adapter构造函数中传递上下文,并可以像这样调用它。
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;
}
}