Προς το περιεχόμενο

Προτεινόμενες αναρτήσεις

Δημοσ.

Καλησπέρα παιδιά.

 

 

Άρχισα να ασχολούμαι με την Java πριν λίγες ημέρες και μου φάνηκε μπελαλίδικη αρκετά.

Έχω Αρχίσει να βγάζω άκρη αλλά είμαι ακόμα μακριά. Το θέμα μου είναι το εξής.

Θέλω το πρόγραμμα μου να εκτελέι κάθε 1 λεπτό μία συγκεκριμένη πράξη.
Θέλω να κάνει δηλαδή loops συνεχόμενα.
Έψαξα google και σε κάτι tutorials στο Lynda.com αλλά δεν βρήκα κάτι ξεκάθαρο.
Το μόνο που "ταίριαζε" ήταν Link.png Site: αυτό .

 

Αν μπορεί κάποιος να μου πεί έναν τρόπο απλό περίπλοκο οτιδήποτε.

 

 

Δημοσ. (επεξεργασμένο)

ok παπι το πάλεψα ευχαριστώ



να ρωτήσω και κάτι ακόμα.
Επειδή κάποια κείμενα σε buttons δεν τα κάνω strings υπάρχει κανα θέμα;

 

Edit:

Και άλλη ερώτηση.

Αν έχω πολλούς διαφορετικούς timers η εφαρμογή θα γίνει αργή η δεν παίζει κανένα θέμα;
Μιλάω για περίπου 50 timers.

Επεξ/σία από marduc812
Δημοσ.

Στο Android αντί του Java Timer συνήθως προτιμάται το Handler.

 

 

 

Επειδή κάποια κείμενα σε buttons δεν τα κάνω strings υπάρχει κανα θέμα;

Όχι αλλά η χρήση string resources προτείνεται από την Google καθώς α) βοηθάει στην καλύτερη συμπίεση και οργάνωση του εκτελέσιμου κώδικα στο APK μας και β) διευκολύνει πολύ την μετάφραση της εφαρμογής μας σε άλλες γλώσσες (localization).

  • Like 1
Δημοσ.

τι ακριβώς θες να κάνεις?

 

Θέλω να κάνω ένα παιχνίδι το οποίο θα είναι με clicks καθαρά (buttons) και θέλω να μπορείς να κάνεις updates σε items ώστε να κάνουν generate money αυτόματα, απλά κάποια θέλω να γίνονται κάθε 1 λεπτό και άλλα κάθε 20 δεύτερα (γενικά μιλώντας)

Δημοσ.

Θα μπορουσες βεβαια να κανεις αυτο που θες με ενα timer που θα τσεκαρει ολα τα αντικειμενα που παραγουν χρηματα.

Σε καθε tick θα τσεκαρει ποια αντικειμενα εχουν timeout και για αυτα θα ενεργοποιει τη μεθοδο παραγωγης χρηματων.

Δημοσ.

Δε χρειαζεσαι κανουριο 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);
    }
}
  • Like 1
  • 3 εβδομάδες αργότερα...
Δημοσ.

Παιδιά έχω τώρα ένα άλλο θέμα.
 

Χρησιμοποιώ τον κώδικα

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 );
αλλά δεν μπόρεσα να κάνω κάτι. 
Καμιά ιδέα;

Δημοσ.

Παράξενος κώδικας (!) -- δημιουργείς ένα Thread το οποίο εκτελεί συνεχώς ένα Handler ανά 60".. γιατί δεν προτιμάς την λύση του nilosgr; .. από εκεί και πέρα δεν διακόπτεται η εκτέλεση του διότι ναι μεν ζητάς το nHandler.removeCallbacks(this) αλλά από την άλλη πλευρά δεν διακόπτεις (πιθανότατα) και την εκτέλεση του while(true) που το εκτελεί / δημιουργεί ανά 60" (πιο σωστά θα έπρεπε να κλείσεις γενικά το Thread(new Runnable .. σου όταν πας σε κατάσταση onPause).

 

*Σκέψου ξανά την συνολική σχεδίαση του κώδικα σου.

 

Καλή συνέχεια.

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...