多线程任务开发可以通过以下几个方式实现:
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点击打开链接
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点击打开链接
新闻热点
疑难解答