В чем разница между Context.startService(intent)
и startService(intent)
и имеет значение, какой из них используется?Context.startService (намерение) или startService (намерение)
ответ
Существует только один метод startService()
. startService()
- это метод класса Context
, доступный для всех подклассов Context
, например Activity
или Service
.
Как Commonsware сказал, что существует только один startService()
. То есть Context.startService(intent)
.
Ваша основная деятельность представляет собой экземпляр Context
, и вам не нужно объяснять метод (startService) с помощью Context
.
Это как вызов метода класса внутри самого класса.
Объяснение
Все в Android может знать, как использовать Adapter
. Мы можем создать для них отдельный класс. это упростит обработку и понимание нашего кодирования. Но когда мы создаем эти классы отдельно. Им нужен Контекст (Calling on behalf
). Поэтому в этом случае мы передаем контекст активности в своем конструкторе. Таким образом, 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;
}
}
Не держитесь за 'Activity' в' AsyncTask'. Если эта активность уничтожена (кнопка BACK, изменение конфигурации и т. Д.), В то время как 'AsyncTask' запущен, теперь' AsyncTask' будет удерживать недопустимое действие. В частности, ** никогда не ссылайтесь на активность из 'doInBackground()', так как активность находится в неопределенном состоянии, пока выполняется фоновый поток. В этом случае 'AsyncTask' должен удерживаться на' LayoutInflater' и 'ConnectivityService'. – CommonsWare
Я понимаю @CommonsWare Но в соответствии с адаптером. У меня есть правильная концепция об использовании его в Adapter – Nepster
Yeesh, мне нужно больше спать. Мои извинения. В этом случае я, вероятно, все равно перейду в «LayoutInflater» и «ConnectivityService», но меня гораздо меньше беспокоят любые проблемы. Опять же, я извиняюсь за свою ошибку. – CommonsWare
- 1. Явное намерение com.google.android.c2dm.intent.REGISTER
- 2. Как создать явное намерение
- 3. Намерение всегда нулевой onStartCommand
- 4. java.lang.IllegalArgumentException: Обслуживание Намерение должно быть четко: Намерение
- 5. Получить намерение передано stopService (намерение) в службе
- 6. передачи данных через намерение/в ожидании намерение
- 7. Начните свое намерение, когда закончите другое намерение
- 8. Service Намерение должно быть четко: Намерение
- 9. Android-намерение навигации, чтобы пропустить намерение/деятельность
- 10. Уничтожить намерение?
- 11. Отправлять намерение только одной услуге
- 12. Намерение, похоже, повреждено
- 13. Служит ли startService для создания новой службы или является ли намерение отправлено на существующий?
- 14. Service Намерение должны быть Explict
- 15. Намерение не повторяется AlarmManager
- 16. android намерение службы в петле
- 17. Android: Вложенные Намерение Service Не будучи Started После вызова к Context.startService()
- 18. Получил намерение в классе IntentService
- 19. Намерение службы должно быть явным
- 20. Когда я вызываю stopService (намерение)
- 21. Успешное намерение поделиться андроидом
- 22. Android, как закрыть намерение?
- 23. java.lang.Object.equals() Каково было намерение?
- 24. Android - Намерение Sharing
- 25. Обнаружить прокрутки намерение
- 26. Намерение параметры объекта конкретизация
- 27. Намерение от уведомления
- 28. камеры Намерение Фото Загрузить
- 29. Alarmmanager с ожидании Намерение
Почему некоторые используют Context.startService (намерение) вместо того, чтобы просто StartService (намерение)? – mnish
Вы должны были бы спросить их. Это не обязательно. – CommonsWare
см. Мой ответ ниже, чтобы понять, почему и когда мы используем Context @mnish – Nepster