বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি স্থায়ী-সময়ের প্রগ্রেস ইন্ডিকেটর প্রদর্শন করুন

একটি ডিটারমিন্যান্ট প্রগ্রেস বার প্রদর্শন করতে, setProgress(max, progress, false) কল করার মাধ্যমে আপনার নোটিফিকেশনে বারটি যুক্ত করুন এবং তারপর নোটিফিকেশন ইস্যু করুন। তৃতীয় আরগুমেন্ট হচ্ছে একটি বুলিয়ান (boolean) যা নির্দেশ করে প্রগ্রেস বার ইনডিটারমিনেন্ট (true) নাকি ডিটারমিন্যান্ট (false)। যেহেতু আপনার অপারেশন অগ্রসরমান থাকে, progress বৃদ্ধি করুন এবং নোটিফিকেশন আডেট করুন। অপারেশনের শেষে, Progress এর max এর (ম্যাক্সিমাম) সমান হওয়া উচিত। setProgress()কল করার একটি সাধারণ উপায় হচ্ছে max কে ১০০ তে সেট করা এবং তারপর অপারেশনের জন্য progress কে একটি "percent complete" ভ্যালু হিসাবে বৃদ্ধি করুন।

যখন অপারেশন শেষ হবে তখন আপনি হয় দেখানোর মধ্য দিয়ে প্রগ্রেস বার ত্যাগ করবেন বা এটা অপসারণ করবেন। অন্য ক্ষেত্রে, অপারেশন শেষ হয়েছে এটা দেখানোর জন্য নোটিফিকেশন আপডেটের কথা স্মরণ করবেন। প্রগ্রেস বার অপসারণ করার জন্য setProgress(0, 0, false) কল করুন। উদাহরণস্বরূপ:

...
mNotifyManager =
        (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
mBuilder = new NotificationCompat.Builder(this);
mBuilder.setContentTitle("Picture Download")
    .setContentText("Download in progress")
    .setSmallIcon(R.drawable.ic_notification);
// Start a lengthy operation in a background thread
new Thread(
    new Runnable() {
        @Override
        public void run() {
            int incr;
            // Do the "lengthy" operation 20 times
            for (incr = 0; incr <= 100; incr+=5) {
                    // Sets the progress indicator to a max value, the
                    // current completion percentage, and "determinate"
                    // state
                    mBuilder.setProgress(100, incr, false);
                    // Displays the progress bar for the first time.
                    mNotifyManager.notify(0, mBuilder.build());
                        // Sleeps the thread, simulating an operation
                        // that takes time
                        try {
                            // Sleep for 5 seconds
                            Thread.sleep(5*1000);
                        } catch (InterruptedException e) {
                            Log.d(TAG, "sleep failure");
                        }
            }
            // When the loop is finished, updates the notification
            mBuilder.setContentText("Download complete")
            // Removes the progress bar
                    .setProgress(0,0,false);
            mNotifyManager.notify(ID, mBuilder.build());
        }
    }
// Starts the thread by calling the run() method in its Runnable
).start();

ফলশ্রুতিতে যে নোটিফিকেশন পাওয়া যায় তা ফিগার ১ এ দেখানো হলো। বাম পাশ হচ্ছে অপারেশনের সময় নোটিফিকেশনের স্ন্যাপশট; ডান পাশেরটা অপারেশন শেষ হওয়ার পর এর একটি স্ন্যাপশট।

ফিগার ১. অপারেশনের সময়কালে এবং শেষ হওয়ার পরের প্রগ্রেস বার।