Context.startService(intent)或startService(intent)

时间:2010-05-15 15:19:38

标签: android service

Context.startService(intent)startService(intent)之间有什么区别,使用哪一个是否重要?

3 个答案:

答案 0 :(得分:7)

只有一种startService()方法。 startService()类是Context类的一种方法,可用于Context的所有子类,如ActivityService

答案 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;
    }

}