คำถามติดแท็ก handler

ในรูปแบบของผู้สังเกตการณ์ตัวจัดการเหตุการณ์คือฟังก์ชันหรือวิธีการที่เรียกว่าผู้สังเกตการณ์กำลังฟังเหตุการณ์ที่ส่งมาจากวัตถุ หรือที่เรียกว่าผู้ฟังเหตุการณ์

30
วิธีการเรียกวิธีหลังจากความล่าช้าใน Android
ฉันต้องการที่จะสามารถเรียกวิธีต่อไปนี้หลังจากความล่าช้าที่ระบุ ในวัตถุประสงค์ c มีบางสิ่งเช่น: [self performSelector:@selector(DoSomething) withObject:nil afterDelay:5]; มีวิธีนี้เทียบเท่าใน Android กับ Java หรือไม่? ตัวอย่างเช่นฉันต้องสามารถเรียกวิธีหลังจาก 5 วินาที public void DoSomething() { //do something here }
769 java  android  handler  delay 

12
AsyncTask มีข้อบกพร่องทางแนวคิดจริงๆหรือฉันแค่ทำบางสิ่งหายไป?
ฉันได้ตรวจสอบปัญหานี้มาหลายเดือนแล้วและหาวิธีแก้ปัญหาที่แตกต่างกันไปซึ่งฉันไม่พอใจเพราะมันเป็นแฮ็คขนาดใหญ่ ฉันยังไม่สามารถเชื่อได้ว่าคลาสที่มีข้อบกพร่องด้านการออกแบบทำให้มันเข้ากับกรอบงานและไม่มีใครพูดถึงมันดังนั้นฉันคิดว่าฉันต้องพลาดบางสิ่งบางอย่าง AsyncTaskปัญหาอยู่ที่ ตามเอกสารนั้น "อนุญาตให้ดำเนินการพื้นหลังและเผยแพร่ผลลัพธ์บนเธรด UI โดยไม่ต้องจัดการกับเธรดและ / หรือตัวจัดการ" ตัวอย่างแล้วยังแสดงให้เห็นว่าบางอย่างที่เป็นแบบอย่างวิธีการที่เรียกว่าshowDialog() onPostExecute()นี้ แต่ดูเหมือนว่าที่วางแผนอย่างสิ้นเชิงกับผมเพราะแสดงโต้ตอบเสมอต้องมีการอ้างอิงถึงที่ถูกต้องContextและ AsyncTask ไม่ต้องถืออ้างอิงที่แข็งแกร่งให้กับวัตถุบริบท เหตุผลชัดเจน: เกิดอะไรขึ้นถ้ากิจกรรมถูกทำลายซึ่งก่อให้เกิดงาน? สิ่งนี้สามารถเกิดขึ้นได้ตลอดเวลาเช่นเนื่องจากคุณพลิกหน้าจอ หากงานนั้นจะมีการอ้างอิงถึงบริบทที่สร้างคุณไม่เพียง แต่จะถือวัตถุบริบทที่ไร้ประโยชน์ (หน้าต่างจะถูกทำลายและการโต้ตอบ UI ใด ๆจะล้มเหลวด้วยข้อยกเว้น!) คุณยังมีความเสี่ยงในการสร้าง หน่วยความจำรั่ว ยกเว้นว่าตรรกะของฉันมีข้อบกพร่องนี่แปลเป็น: onPostExecute()ไร้ประโยชน์อย่างสิ้นเชิงเพราะวิธีนี้จะทำงานบนเธรด UI ได้ดีเพียงใดหากคุณไม่สามารถเข้าถึงบริบทใด ๆ คุณไม่สามารถทำอะไรที่มีความหมายได้ที่นี่ วิธีแก้ปัญหาหนึ่งคือการไม่ส่งอินสแตนซ์บริบทไปยัง AsyncTask แต่เป็นHandlerอินสแตนซ์ ใช้งานได้: เนื่องจากตัวจัดการผูกบริบทและภารกิจไว้อย่างหลวม ๆ คุณสามารถแลกเปลี่ยนข้อความระหว่างกันโดยไม่เสี่ยงต่อการรั่วไหล (ใช่ไหม) แต่นั่นหมายความว่าสถานที่ตั้งของ AsyncTask คือคุณไม่จำเป็นต้องกังวลกับตัวจัดการผิด ดูเหมือนว่าการใช้ Handler ในทางที่ผิดเนื่องจากคุณกำลังส่งและรับข้อความในเธรดเดียวกัน (คุณสร้างมันบนเธรด UI และส่งผ่านมันใน onPostExecute () …

10
การเรียกฟังก์ชันเมื่อ ng-repeat เสร็จสิ้น
สิ่งที่ฉันพยายามนำมาใช้นั้นเป็นตัวจัดการ "ในการทำซ้ำการเรนเดอร์เสร็จสิ้น" ฉันสามารถตรวจจับได้เมื่อเสร็จสิ้น แต่ฉันไม่สามารถหาวิธีที่จะเรียกใช้ฟังก์ชันจากมันได้ ตรวจสอบซอ: http://jsfiddle.net/paulocoelho/BsMqq/3/ JS var module = angular.module('testApp', []) .directive('onFinishRender', function () { return { restrict: 'A', link: function (scope, element, attr) { if (scope.$last === true) { element.ready(function () { console.log("calling:"+attr.onFinishRender); // CALL TEST HERE! }); } } } }); function myC($scope) { $scope.ta = [1, …

7
jQuery .live () vs .on () วิธีการเพิ่มเหตุการณ์คลิกหลังจากโหลด HTML แบบไดนามิก
ฉันใช้ jQuery v.1.7.1 โดยที่วิธีการ. live () ไม่ชัดเจน ปัญหาที่ฉันมีคือเมื่อโหลด html ไปยังองค์ประกอบแบบไดนามิกโดยใช้: $('#parent').load("http://..."); หากฉันลองและเพิ่มคลิกเหตุการณ์หลังจากนั้นจะไม่ลงทะเบียนเหตุการณ์โดยใช้วิธีใดวิธีหนึ่งต่อไปนี้: $('#parent').click(function() ...); หรือ // according to documentation this should be used instead of .live() $('#child').on('click', function() ...); วิธีที่ถูกต้องในการบรรลุฟังก์ชั่นนี้คืออะไร? ดูเหมือนว่าจะทำงานกับ. live () สำหรับฉัน แต่ฉันไม่ควรใช้วิธีการนั้น โปรดทราบว่า #child เป็นองค์ประกอบที่โหลดแบบไดนามิก ขอบคุณ

4
สร้างเหตุการณ์ที่กำหนดเองใน Java
ฉันต้องการทำสิ่งนี้ใน Java แต่ฉันไม่รู้วิธี: เมื่อเหตุการณ์ "object 1 พูดว่า 'hello'" จะเกิดขึ้นดังนั้น object 2 จะตอบกลับเหตุการณ์นั้นโดยพูดว่า "hello" ใครสามารถให้คำแนะนำหรือตัวอย่างรหัสแก่ฉันได้หรือไม่
193 java  events  listener  handler 

12
AsyncTask และการจัดการข้อผิดพลาดบน Android
ฉันแปลงรหัสของฉันจากการใช้เพื่อHandler AsyncTaskสิ่งหลังสุดยอดมากในสิ่งที่ทำ - การอัพเดตแบบอะซิงโครนัสและการจัดการผลลัพธ์ในเธรด UI หลัก AsyncTask#doInBackgroundสิ่งที่ไม่ชัดเจนให้ฉันเป็นวิธีการจัดการกับข้อยกเว้นหากสิ่งที่ไปยุ่งเหยิงใน วิธีที่ฉันทำคือมีตัวจัดการข้อผิดพลาดและส่งข้อความถึงมัน มันใช้งานได้ดี แต่มันเป็นวิธีที่ "ถูก" หรือมีทางเลือกที่ดีกว่า? นอกจากนี้ฉันเข้าใจว่าถ้าฉันกำหนดตัวจัดการข้อผิดพลาดเป็นฟิลด์กิจกรรมก็ควรดำเนินการในเธรด UI อย่างไรก็ตามบางครั้ง (คาดเดาไม่ได้มาก) ฉันจะได้รับข้อยกเว้นโดยบอกว่ารหัสที่ถูกเรียกใช้Handler#handleMessageนั้นกำลังรันอยู่บนเธรดที่ไม่ถูกต้อง ฉันควรเริ่มต้นตัวจัดการข้อผิดพลาดActivity#onCreateแทนหรือไม่ วางrunOnUiThreadลงในHandler#handleMessageดูเหมือนซ้ำซ้อน แต่ก็ดำเนินการอย่างน่าเชื่อถือ

9
ตัวจัดการความสมบูรณ์สำหรับ UINavigationController“ pushViewController: animated”?
ฉันกำลังสร้างแอปโดยใช้UINavigationControllerเพื่อนำเสนอตัวควบคุมมุมมองถัดไป ด้วย iOS5 มีวิธีการนำเสนอใหม่UIViewControllers: presentViewController:animated:completion: ตอนนี้ฉันถามฉันว่าทำไมไม่มีตัวจัดการที่สมบูรณ์สำหรับUINavigationController? มีเพียง pushViewController:animated: มันเป็นไปได้ที่จะสร้างเสร็จจัดการของตัวเองเหมือนใหม่presentViewController:animated:completion:?

4
หยุด handler.postDelayed ()
ฉันเรียกตัวจัดการหลายตัวโดยตัวจัดการใหม่ () postDelayed (Runnable ใหม่ () ..... ฉันจะหยุดมันได้อย่างไรเมื่อฉันคลิกที่ด้านหลัง? public class MyActivity extends AppCompatActivity implements OnClickListener { private Button btn; private Handler handler; private Runnable myRunnable; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); btn = (Button) findViewById(R.id.trainingsstart); btn.setOnClickListener(this); } @Override public void onClick(View v) { Handler handler = new Handler(); Runnable …

3
Timertask หรือ Handler
สมมติว่าฉันต้องการดำเนินการบางอย่างทุกๆ 10 วินาทีและไม่จำเป็นต้องอัปเดตมุมมอง คำถามคือจะดีกว่าไหม (ฉันหมายถึงมีประสิทธิภาพและประสิทธิผลมากกว่า) ในการใช้ตัวจับเวลากับ timertask ดังนี้: final Handler handler = new Handler(); TimerTask timertask = new TimerTask() { @Override public void run() { handler.post(new Runnable() { public void run() { <some task> } }); } }; timer = new Timer(); timer.schedule(timertask, 0, 15000); } หรือเป็นเพียงตัวจัดการที่มีการล่าช้าภายหลัง final Handler handler …

5
ความสัมพันธ์ระหว่าง Looper, Handler และ MessageQueue ใน Android คืออะไร?
ผมได้ตรวจสอบอย่างเป็นทางการ Android เอกสาร / คู่มือสำหรับLooper, และHandler MessageQueueแต่ฉันไม่สามารถรับมันได้ ฉันยังใหม่กับ Android และสับสนกับแนวคิดเหล่านี้มาก

7
ตัวจัดการเหตุการณ์ Javascript พร้อมพารามิเตอร์
ฉันต้องการสร้าง EventHandler ที่ส่งผ่านเหตุการณ์และพารามิเตอร์บางอย่าง ปัญหาคือฟังก์ชันไม่ได้รับองค์ประกอบ นี่คือตัวอย่าง: doClick = function(func){ var elem = .. // the element where it is all about elem.onclick = function(e){ func(e, elem); } } doClick(function(e, element){ // do stuff with element and the event }); ต้องกำหนด 'elem' นอกฟังก์ชันที่ไม่ระบุตัวตน ฉันจะรับองค์ประกอบที่ส่งผ่านเพื่อใช้ภายในฟังก์ชันนิรนามได้อย่างไร มีวิธีทำไหม? แล้ว addEventListener ล่ะ? ดูเหมือนว่าฉันจะไม่สามารถส่งต่อเหตุการณ์ผ่าน addEventListener ได้เลยใช่ไหม อัปเดต …

7
การเข้าถึงตัวจัดการเธรด UI จากบริการ
ฉันกำลังลองสิ่งใหม่ ๆ บน Android ซึ่งฉันจำเป็นต้องเข้าถึงตัวจัดการเธรด UI ฉันรู้สิ่งต่อไปนี้: เธรด UI มีตัวจัดการและตัววนรอบของตัวเอง ข้อความใด ๆ จะถูกใส่ลงในคิวข้อความของเธรด UI ลูปเกอร์รับเหตุการณ์และส่งต่อไปยังตัวจัดการ ตัวจัดการจะจัดการข้อความและส่งเหตุการณ์เฉพาะไปยัง UI ฉันต้องการมีบริการของฉันซึ่งต้องได้รับตัวจัดการเธรด UI และใส่ข้อความลงในตัวจัดการนี้ เพื่อให้ข้อความนี้ได้รับการประมวลผลและจะออกไปยัง UI ที่นี่บริการจะเป็นบริการปกติซึ่งจะเริ่มโดยแอปพลิเคชันบางส่วน ฉันต้องการทราบว่าเป็นไปได้หรือไม่ ถ้าเป็นเช่นนั้นโปรดแนะนำข้อมูลโค้ดเพื่อที่ฉันจะได้ลองใช้ ขอแสดงความนับถือ Girish

3
ตัวจัดการคืออะไร [ปิด]
ปิด . คำถามนี้จะต้องมีมากขึ้นมุ่งเน้น ขณะนี้ยังไม่ยอมรับคำตอบ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เน้นไปที่ปัญหาเดียวโดยแก้ไขโพสต์นี้เท่านั้น ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ สวัสดีฉันกำลังพยายามเรียนรู้คำศัพท์ที่เกี่ยวข้องกับการเขียนโปรแกรมและฉันมักจะเจอกับตัวจัดการคำ ใครช่วยอธิบายความหมายของตัวจัดการและเวลาที่จะใช้คำนี้
86 handler 

1
การดีบักตัวจัดการ จำกัด อัตรา istio
ฉันกำลังพยายามใช้อัตรา จำกัด กับบริการภายในของเรา (ภายในเครือข่าย) ฉันใช้ตัวอย่างจากเอกสารและสร้างการ จำกัด การกำหนดค่าอัตรา redis ที่มีตัวจัดการ (redis) อินสแตนซ์โควต้าสเปคโควต้าการกำหนดโควต้าการรวมข้อมูลจำเพาะและกฎเพื่อใช้ตัวจัดการ ตัวจัดการ Redis นี้: apiVersion: config.istio.io/v1alpha2 kind: handler metadata: name: redishandler namespace: istio-system spec: compiledAdapter: redisquota params: redisServerUrl: <REDIS>:6379 connectionPoolSize: 10 quotas: - name: requestcountquota.instance.istio-system maxAmount: 10 validDuration: 100s rateLimitAlgorithm: FIXED_WINDOW overrides: - dimensions: destination: s1 maxAmount: 1 - dimensions: …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.