Context.startService(intent)
和startService(intent)
之間的區別是什麼?它使用哪一個?Context.startService(intent)或startService(intent)
回答
只有一個startService()
方法。 startService()
是Context
類中的一種方法,可用於Context
的所有子類,如Activity
或Service
。
正如Commonsware所說只有一個startService()
。那是Context.startService(intent)
。
您的主要活動程序本身是Context
的一個實例,您不需要用Context
明確地調用方法(startService)。
這就像是在類中調用一個類的方法。
說明
大家在的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;
}
}
不要拘泥於「AsyncTask」中的「Activity」。如果在AsyncTask正在運行時該活動被銷燬(BACK按鈕,配置更改等),則現在「AsyncTask」將被保留爲無效活動。特別是** never **指的是來自'doInBackground()'的活動,因爲活動在後臺線程運行時處於不確定狀態。在這種情況下,'AsyncTask'應該保存在'LayoutInflater'和'ConnectivityService'中。 – CommonsWare 2014-07-17 10:38:55
我明白@CommonsWare但根據適配器。我有關於在適配器中使用它的正確概念 – Nepster 2014-07-17 10:45:37
Yeesh,我需要更多的睡眠。我很抱歉。在這種情況下,我可能仍會傳入'LayoutInflater'和'ConnectivityService',但我不太關心任何問題。再次,我爲我的錯誤道歉。 – CommonsWare 2014-07-17 10:47:22
- 1. Espresso Intent Custom Intent Matcher
- 2. 對前臺服務使用Context.startForegroundService(Intent)而不是Context.startService(Intent)有沒有什麼好處?
- 3. 如何整理FORTRAN中的intent(in),intent(out)和intent(inout)
- 4. Intent&BroadcastReceiver
- 5. Android onActivityResult()with Intent
- 6. Panorama Api intent null
- 7. Gallery Intent to Camera
- 8. 替代intent = match?
- 9. android linkify intent
- 10. nullpointer on intent android
- 11. Android StartAcitivty()with intent
- 12. Android Intent-filter VerifyError
- 13. Unity - Share Intent
- 14. Intent is undefined
- 15. Android ViewPageIndication with intent
- 16. Android Flavor related Intent
- 17. android intent putExtras
- 18. Geofencing Intent Not Firing
- 19. 從SEND Intent
- 20. YouTube intent resultCode
- 21. android listview and intent
- 22. Android ViewFlipper With Intent
- 23. intent and onNewIntent
- 24. ACTION_SEND intent android
- 25. Intent-swich XML
- 26. ActivityThread.performLaunchActivity(ActivityThread $ ActivityClientRecord,Intent)
- 27. ImageView Share Intent
- 28. Crash startActivityForResult(intent,1);
- 29. Wit.ai intent issues
- 30. android listview intent
爲什麼有些使用Context.startService(意向)而不只是startService(意圖)? – mnish 2010-05-15 15:59:46
你將不得不問他們。沒有必要。 – CommonsWare 2010-05-15 18:12:32
請參閱下面的答案,瞭解爲什麼以及何時使用Context @mnish – Nepster 2014-07-17 10:26:31