首页 > 系统 > Android > 正文

【Android通讯】多线程任务开发

2019-11-09 17:34:53
字体:
来源:转载
供稿:网友

多线程任务开发可以通过以下几个方式实现:

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点击打开链接


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表