marduc812 Δημοσ. 1 Οκτωβρίου 2013 Δημοσ. 1 Οκτωβρίου 2013 Καλησπέρα παιδιά. Άρχισα να ασχολούμαι με την Java πριν λίγες ημέρες και μου φάνηκε μπελαλίδικη αρκετά. Έχω Αρχίσει να βγάζω άκρη αλλά είμαι ακόμα μακριά. Το θέμα μου είναι το εξής.Θέλω το πρόγραμμα μου να εκτελέι κάθε 1 λεπτό μία συγκεκριμένη πράξη.Θέλω να κάνει δηλαδή loops συνεχόμενα.Έψαξα google και σε κάτι tutorials στο Lynda.com αλλά δεν βρήκα κάτι ξεκάθαρο.Το μόνο που "ταίριαζε" ήταν Site: αυτό . Αν μπορεί κάποιος να μου πεί έναν τρόπο απλό περίπλοκο οτιδήποτε.
marduc812 Δημοσ. 1 Οκτωβρίου 2013 Μέλος Δημοσ. 1 Οκτωβρίου 2013 (επεξεργασμένο) ok παπι το πάλεψα ευχαριστώ να ρωτήσω και κάτι ακόμα.Επειδή κάποια κείμενα σε buttons δεν τα κάνω strings υπάρχει κανα θέμα; Edit: Και άλλη ερώτηση. Αν έχω πολλούς διαφορετικούς timers η εφαρμογή θα γίνει αργή η δεν παίζει κανένα θέμα;Μιλάω για περίπου 50 timers. Επεξ/σία 1 Οκτωβρίου 2013 από marduc812
Directx Δημοσ. 1 Οκτωβρίου 2013 Δημοσ. 1 Οκτωβρίου 2013 Στο Android αντί του Java Timer συνήθως προτιμάται το Handler. Επειδή κάποια κείμενα σε buttons δεν τα κάνω strings υπάρχει κανα θέμα; Όχι αλλά η χρήση string resources προτείνεται από την Google καθώς α) βοηθάει στην καλύτερη συμπίεση και οργάνωση του εκτελέσιμου κώδικα στο APK μας και β) διευκολύνει πολύ την μετάφραση της εφαρμογής μας σε άλλες γλώσσες (localization). 1
marduc812 Δημοσ. 1 Οκτωβρίου 2013 Μέλος Δημοσ. 1 Οκτωβρίου 2013 τι ακριβώς θες να κάνεις? Θέλω να κάνω ένα παιχνίδι το οποίο θα είναι με clicks καθαρά (buttons) και θέλω να μπορείς να κάνεις updates σε items ώστε να κάνουν generate money αυτόματα, απλά κάποια θέλω να γίνονται κάθε 1 λεπτό και άλλα κάθε 20 δεύτερα (γενικά μιλώντας)
sonyxp Δημοσ. 2 Οκτωβρίου 2013 Δημοσ. 2 Οκτωβρίου 2013 Δεν θες λουπ. Θες timer. και για καθε οντοτητα και θρεαντ λογικα
georgemarios Δημοσ. 2 Οκτωβρίου 2013 Δημοσ. 2 Οκτωβρίου 2013 Θα μπορουσες βεβαια να κανεις αυτο που θες με ενα timer που θα τσεκαρει ολα τα αντικειμενα που παραγουν χρηματα. Σε καθε tick θα τσεκαρει ποια αντικειμενα εχουν timeout και για αυτα θα ενεργοποιει τη μεθοδο παραγωγης χρηματων.
nilosgr Δημοσ. 2 Οκτωβρίου 2013 Δημοσ. 2 Οκτωβρίου 2013 Δε χρειαζεσαι κανουριο Thread. Μονο ενα Runnable κι εναν Handler. public class RepeatRunnable implements Runnable { /** in ms */ long interval; Handler mHandler; Runnable mRunnable; public RepeatRunnable(Handler handler, long interval, Runnable action) { mHandler = handler; mRunnable = action; this.interval = interval; } @Override public void run() { mRunnable.run(); mHandler.postDelayed(this, interval); } public void stop() { mHandler.removeCallbacks(this); } } 1
marduc812 Δημοσ. 23 Οκτωβρίου 2013 Μέλος Δημοσ. 23 Οκτωβρίου 2013 Παιδιά έχω τώρα ένα άλλο θέμα. Χρησιμοποιώ τον κώδικα new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub while (true) { try { Thread.sleep(60000); nHandler.post(new Runnable() { @Override public void run() { // TODO Auto-generated method stub taactionsmou(); } }); } catch (Exception e) { // TODO: handle exception } } } }).start(); Το θέμα είναι ότι χρησιμοποιώ toast ανα ένα λεπτό και ακόμα και αν πάει στο onpause η εφαρμογή αυτό εκεί συνεχίζει.Θέλω λοιπόν να σταματάει στο onpause.Δοκίμασα τοmHandler.removeCallbacks( this );αλλά δεν μπόρεσα να κάνω κάτι. Καμιά ιδέα;
Directx Δημοσ. 23 Οκτωβρίου 2013 Δημοσ. 23 Οκτωβρίου 2013 Παράξενος κώδικας (!) -- δημιουργείς ένα Thread το οποίο εκτελεί συνεχώς ένα Handler ανά 60".. γιατί δεν προτιμάς την λύση του nilosgr; .. από εκεί και πέρα δεν διακόπτεται η εκτέλεση του διότι ναι μεν ζητάς το nHandler.removeCallbacks(this) αλλά από την άλλη πλευρά δεν διακόπτεις (πιθανότατα) και την εκτέλεση του while(true) που το εκτελεί / δημιουργεί ανά 60" (πιο σωστά θα έπρεπε να κλείσεις γενικά το Thread(new Runnable .. σου όταν πας σε κατάσταση onPause). *Σκέψου ξανά την συνολική σχεδίαση του κώδικα σου. Καλή συνέχεια.
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα