多線程任務(wù)開發(fā)可以通過以下幾個方式實(shí)現(xiàn):
1、Handler,如下:
public class MainActivity extends AppCompatActivity { PRivate MyHandler mHandler = new MyHandler(this); private TextView mTextView ; private static class MyHandler extends Handler { private WeakReference<Context> reference; public MyHandler(Context context) { reference = new WeakReference<>(context); } @Override public void handleMessage(Message msg) { MainActivity activity = (MainActivity) reference.get(); if(activity != null){ activity.mTextView.setText(""); } } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mTextView = (TextView)findViewById(R.id.textview); loadData(); } private void loadData() { //...request Message message = Message.obtain(); mHandler.sendMessage(message); } @Override protected void onDestroy() { super.onDestroy(); mHandler.removeCallbacksAndMessages(null); } } 請參考:http://blog.csdn.net/QQ_29266921/article/details/54861596點(diǎn)擊打開鏈接
AsyncTask,如下:
public class MainActivity extends AppCompatActivity { private MyAsyncTask mySyncTask= new MyAsyncTask (this); private static class MyAsyncTask extends AsyncTask<Void, Void, Void> { private WeakReference<Context> weakReference; public MyAsyncTask(Context context) { weakReference = new WeakReference<>(context); } @Override protected Void doInBackground(Void... params) { SystemClock.sleep(10000); return null; } @Override protected void onPostExecute(Void aVoid) { super.onPostExecute(aVoid); MainActivity activity = (MainActivity) weakReference.get(); if (activity != null) { //... } } } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mySyncTask.excute(); } @Override protected void onDestroy() { super.onDestroy(); myAsyncTask.cancle(); } }請參考:http://blog.csdn.net/q376420785/article/details/8882920點(diǎn)擊打開鏈接
新聞熱點(diǎn)
疑難解答
圖片精選