Android рд╕реВрдЪрдирд╛рдПрдВред рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдХреЗ рдЬрд░рд┐рдП рдЕрд▓рд░реНрдЯ

рд╢реБрдн рджреЛрдкрд╣рд░, рдЦрд╛рдмрд░реЛрд╡рд╕реНрдХ рдирд┐рд╡рд╛рд╕реАред рдореИрдВ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдХрд╛ рд╡рд┐рдХрд╛рд╕ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдореБрджрд╛рдп рдХреЛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдЫрд╡рд┐

рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдореЗрдВ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдкрд░ рдПрдХ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣реИред рдпрд╣ рдПрдХ рдорд╛рдирдХ рдкрдЯреНрдЯреА рдореЗрдВ рдПрдХ рдорд╛рдирдХ рдФрд░ рд╡рд┐рдиреНрдпрд╛рд╕ рдпреЛрдЧреНрдп рд▓реЗрдЖрдЙрдЯ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред

рдиреАрдЪреЗ, рдкрд╣рд▓реЗ рд╕реЗ рд╡рд░реНрдгрд┐рдд рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╣рдо рдПрдХ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдШрдЯрдирд╛рдУрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдШрдЯрдирд╛рдУрдВ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рдиреЗ, рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд░рд╛рдЬреНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред рд╕рдВрдЧрддрддрд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рджреВрд╕рд░реЗ рджрд┐рди рдЬреЛрдбрд╝реЗ рдЬрд╛рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдФрд░ рдпреВрдЖрдИ ( рдбрд┐рдЬрд╛рдЗрди рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ ) рдкрд░ рд╕рд┐рдлрд╛рд░рд┐рд╢реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ Google рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рд╕реВрдЪрдирд╛рдУрдВ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рддреЗ рд╕рдордп рдкрд╛рд▓рди рдХрд░реЗрдВред


рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢
рдЬреИрд╕рд╛ рдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рджрд┐рд╢рд╛рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд╕рд▓рд╛рд╣ рджреЗрддреЗ рд╣реИрдВ
рд╕реВрдЪрдирд╛рдПрдВ рдХрдм рджрд┐рдЦрд╛рдПрдВ:



рд╕реВрдЪрдирд╛рдПрдБ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдм рдирд╣реАрдВ:

  1. рдЧреИрд░-рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЫрджреНрдо рд╕рдордп-рдирд┐рд░реНрднрд░ рдШрдЯрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕реВрдЪрдирд╛рдПрдВ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕рд╛рдорд╛рдЬрд┐рдХ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЗ рд╕рдорд╛рдЪрд╛рд░ред
  2. рдПрдкреНрд▓рд┐рдХреЗрд╢рди UI рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХреНрдпрд╛ рд╣реИ, рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред
  3. рдЖрдкрдХреЛ рдирд┐рдореНрди рд╕реНрддрд░ рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреА рдкреНрд░рдЧрддрд┐ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рддрдХ рдкрд╣реБрдВрдЪрдирд╛ред
  4. рдпрджрд┐ рдЖрд╡реЗрджрди рдЬрд▓реНрджреА рд╕реЗ рддреНрд░реБрдЯрд┐ рдХреЛ рдареАрдХ рдХрд░ рджреЗрддрд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рджрд┐рдЦрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд╕рд╛рдеред
  5. рдЙрди рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рди рджрд┐рдЦрд╛рдПрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
  6. рдПрдХ рдЦрд░рд╛рдм рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрдбрд╝реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИ, рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╛рдж рджрд┐рд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рд▓рдЧрд╛рддрд╛рд░ рдЕрдкрдирд╛ рдЖрдЗрдХрди рдФрд░ рдирд╛рдо рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред


рдЕрдЪреНрдЫрд╛ рдЕрднреНрдпрд╛рд╕:

  1. рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рдВрдмрдВрдзрд┐рдд рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдХреНрд░реАрди рдЦреЛрд▓рдиреА рдЪрд╛рд╣рд┐рдПред рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдпрд╣ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИ рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗрд╡рд▓ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд╣рдЯрд╛ рджреА рдЧрдИ рд╣реИред
  2. рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдПрдХ рдШрдЯрдирд╛ рдХреЗ рд╕рдордп рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рднреА рдПрдХ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИред
  3. рдпрд╣ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдЗрд╕реА рддрд░рд╣ рдХреА рдШрдЯрдирд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдШрдЯрдирд╛ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдкреНрд░рджрд░реНрд╢рди рдирд╣реАрдВ рд╣реИред
  4. рд╣рдореЗрд╢рд╛ рд╕реНрдЯреЗрдЯрд╕ рдмрд╛рд░ рдХреЗ рдиреЛрдЯрд┐рдлрд┐рдХреЗрд╢рди рдХреЛ рд╣рдЯрд╛ рджреЗрдВ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкрд╣рд▓реЗ рд╣реА рдЙрдЪрд┐рдд рдХрд╛рд░реНрд░рд╡рд╛рдИ рдкрдврд╝ рдЪреБрдХрд╛ рд╣реИ рдФрд░ рдХрд░ рдЪреБрдХрд╛ рд╣реИред
  5. рдЬрдм рдпрд╣ рдиреНрдпреВрдирддрдо рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА рдореЗрдВ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рдЫреЛрдЯрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рджрд┐рдЦрд╛рдПрдВ рдЫрд╡рд┐
  6. рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдВред
  7. рдпрд╣ рджрд░реНрд╢рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдЖрдЗрдХрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдкреНрд░рддреАрдХ рдореЛрдиреЛрдХреНрд░реЛрдо рдмрдирд╛рддреЗ рд╣реИрдВред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдСрдирд▓рд╛рдЗрди рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХреА рдЬрд╛рддреА рд╣реИ
  8. рдпрджрд┐ рдШрдЯрдирд╛ рдХреЛ рдкреНрд░рддреНрдпрдХреНрд╖ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рдВрд╡рд╛рдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рд╡рд╛рд╕реНрддреБрдХрд▓рд╛:

рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд░реВрдк рдореЗрдВ, рдореИрдВ рдЕрдкрдиреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рд╕рд┐рдВрдЧрд▓рдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЬрд┐рд╕реЗ рдХрд┐рд╕реА рднреА рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╡рд░реНрдЧ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЖрдкрдХреЛ рдмрд╕ рд╕рдВрджрд░реНрдн рдХреЗ рд▓рд┐рдП рд▓рд┐рдВрдХ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдпрд╣ рд╣рдореЗрд╢рд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╕рдВрдЪрд╛рд▓рди рдХреЗ рджреМрд░рд╛рди рдмрдирд╛рдИ рдЧрдИ рд╕рднреА рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддрд╛ рд╣реИ, рдЬреЛ рдЕрднреА рднреА рд╕реНрдерд┐рддрд┐ рдкрдЯреНрдЯреА рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддреЗ рд╣реИрдВред

рдФрд░ рдПрдХ рдирдИ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрджреНрд╡рд┐рддреАрдп рдЖрдИрдбреА рдЕрд╕рд╛рдЗрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдирд┐рдЬреА рдкреВрд░реНрдгрд╛рдВрдХ рдлрд╝реАрд▓реНрдб рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд░рд▓ рддрдВрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рд╣рд░ рдмрд╛рд░ рдПрдХ рд╕реЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИред
public class NotificationUtils {

private static final String TAG = NotificationUtils. class .getSimpleName();

private static NotificationUtils instance;

private static Context context;
private NotificationManager manager; // ,
private int lastId = 0; // ,
private HashMap<Integer, Notification> notifications; // -


// Singleton
private NotificationUtils(Context context){
this .context = context;
manager = (NotificationManager) context.getSystemService(Context.NOTIFICATION_SERVICE);
notifications = new HashMap<Integer, Notification>();
}

/**
*
*/

public static NotificationUtils getInstance(Context context){
if(instance== null ){
instance = new NotificationUtils(context);
} else{
instance.context = context;
}
return instance;
}

* This source code was highlighted with Source Code Highlighter .


NotificationCompat.Builder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛рдирд╛:
рд╕рдВрдЧрддрддрд╛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╡рд░реНрдЧреЛрдВ рдХрд╛ рд▓рд╛рдн рдЙрдард╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ /extras/android/support/v4/android-support-v4.jar рдлрд╝реЛрд▓реНрдбрд░ рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛
рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдПрдВрдбреНрд░реЙрдЗрдб 3.0 рдФрд░ рдЙрдЪреНрдЪрддрд░ рдкрд░ рд▓рдХреНрд╖рд┐рдд рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдХреБрдЫ рднреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдмрд╕ Notification.Builder рдХреА рдУрд░ рдореБрдбрд╝реЗрдВ

public int createInfoNotification( String message){
Intent notificationIntent = new Intent(context, HomeActivity. class ); // HomeActivity
NotificationCompat.Builder nb = new NotificationCompat.Builder(context)
//NotificationCompat.Builder nb = new NotificationBuilder(context) // Android > 3.0
.setSmallIcon(R.drawable.ic_action_picture) //
.setAutoCancel( true ) //
.setTicker(message) //, -
.setContentText(message) //
.setContentIntent(PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_CANCEL_CURRENT))
.setWhen(System.currentTimeMillis()) //
.setContentTitle( "AppName" ) //
.setDefaults(Notification.DEFAULT_ALL); // ,

Notification notification = nb.getNotification(); //
manager.notify(lastId, notification); // .
notifications.put(lastId, notification); // id
return lastId++;
}


* This source code was highlighted with Source Code Highlighter .


рдПрдХ рдХрд╕реНрдЯрдо рд▓реЗрдЖрдЙрдЯ рдЕрдзрд┐рд╕реВрдЪрдирд╛ (рдХрд╕реНрдЯрдо рд▓реЗрдЖрдЙрдЯ) рдмрдирд╛рдПрдБ:

/**
*
* @param fileName - , .
*/
public int createDownloadNotification( String fileName){
String text = context.getString(R. string .notification_downloading).concat( " " ).concat(fileName); //
RemoteViews contentView = createProgressNotification(text, context.getString(R. string .notification_downloading)); //View
contentView.setImageViewResource(R.id.notification_download_layout_image, R.drawable.ic_stat_example); //
return lastId++; // id,
}

/**
* ProgressBar,
*
* @param text
* @param topMessage , -
* @return View .
*/
private RemoteViews createProgressNotification( String text, String topMessage) {
Notification notification = new Notification(R.drawable.ic_stat_example, topMessage, System.currentTimeMillis());
RemoteViews contentView = new RemoteViews(context.getPackageName(), R.layout.notification_download_layout);
contentView.setProgressBar(R.id.notification_download_layout_progressbar, 100, 0, false );
contentView.setTextViewText(R.id.notification_download_layout_title, text);

notification.contentView = contentView;
notification.flags = Notification.FLAG_NO_CLEAR | Notification.FLAG_ONGOING_EVENT | Notification.FLAG_ONLY_ALERT_ONCE;

Intent notificationIntent = new Intent(context, NotificationUtils. class );
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.contentIntent = contentIntent;

manager.notify(lastId, notification);
notifications.put(lastId, notification);
return contentView;
}


notification_download_layout.xml:

<? xml version ="1.0" encoding ="utf-8" ? >
< LinearLayout xmlns:android ="http://schemas.android.com/apk/res/android"
android:layout_width ="fill_parent"
android:layout_height ="65sp"
android:padding ="10dp"
android:orientation ="vertical" >

< LinearLayout
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:orientation ="horizontal" >

< ImageView
android:id ="@+id/notification_download_layout_image"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:src ="@drawable/ic_stat_example"
android:layout_gravity ="center_vertical" />

< TextView
android:id ="@+id/notification_download_layout_title"
style ="@style/NotificationTitle"
android:layout_width ="wrap_content"
android:layout_height ="wrap_content"
android:layout_alignParentTop ="true"
android:layout_marginLeft ="10dip"
android:singleLine ="true"
android:text ="notification_download_layout_title"
android:layout_gravity ="center_vertical" />
</ LinearLayout >

< ProgressBar
android:id ="@+id/notification_download_layout_progressbar"
style ="?android:attr/progressBarStyleHorizontal"
android:layout_width ="fill_parent"
android:layout_height ="wrap_content"
android:layout_marginTop ="4dp"
android:progress ="0" />

</ LinearLayout >


рдПрдВрдбреНрд░реЙрдЗрдб 2.3 рдФрд░ рдЙрдЪреНрдЪрддрд░ (рдПрдкреАрдЖрдИ> 10) рдореЗрдВ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдЬрд┐рд╕рдореЗрдВ рд╕рд┐рд╕реНрдЯрдо рд╡рд┐рд╖рдп рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд╛рда рдХреЗ рд░рдВрдЧреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рдЬрд╣ рд╕реЗ, рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдЖрдкрдХреЛ рдПрдХ рдмреИрд╕рд╛рдЦреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:

рдлрд╝рд╛рдЗрд▓ рд░реЗрд╕ / рдорд╛рди / рд╕реНрдЯрд╛рдЗрд▓.xml рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:

<? xml version ="1.0" encoding ="utf-8" ? >
< resources >
< style name ="NotificationText" >
< item name ="android:textColor" > ?android:attr/textColorPrimary </ item >
</ style >
< style name ="NotificationTitle" >
< item name ="android:textColor" > ?android:attr/textColorPrimary </ item >
< item name ="android:textStyle" > bold </ item >
</ style >

</ resources >


рдФрд░ рдПрдкреАрдЖрдИ> 10 рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдПрдХ рдлрд╝рд╛рдЗрд▓ рд░реЗрд╕ / рд╡реИрд▓реНрдпреВ-рд╡реА 9 / рд╕реНрдЯрд╛рдЗрд▓.рдПрдХреНрд╕рдПрдордПрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЯрд╛рдЗрдк рдХрд░реЗрдВ:

<? xml version ="1.0" encoding ="utf-8" ? >
< resources >
< style name ="NotificationText" parent ="android:TextAppearance.StatusBar.EventContent" />
< style name ="NotificationTitle" parent ="android:TextAppearance.StatusBar.EventContent.Title" />
</ resources >


рдЕрдм, рд╣рдорд╛рд░реЗ рдЖрд╡реЗрджрди рдХреЗ рдХреЛрдб рд╕реЗ, рд╣рдо рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВ:

NotificationUtils n = NotificationUtils.getInstance(getActivity());
n.createInfoNotification( "info notification" );



рдПрдХ рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛рдПрдБ:

int pbId = NotificationUtils.getInstance(getActivity()).createDownloadNotification( "downloading video" );


рдФрд░ рдЬрдм рдереНрд░реЗрдб рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛ рд░рд╣рд╛ рд╣реИ, рд╣рдо рд▓рдЧрд╛рддрд╛рд░ рдХреЙрд▓ рдХрд░рдХреЗ рдкреНрд░рдЧрддрд┐ рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреЗ рд╣реИрдВ:

NotificationUtils.getInstance(getActivity()).updateProgress(pbId, YOUR_PROGRESS);


рдирддреАрдЬрддрди, рд╣рдо рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ:
рдЫрд╡рд┐

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ - рдмрд┐рд▓реНрдбрд░ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдирд┐рдЪрд▓реЗ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдХрд┐рд╕реА рднреА рд╕рдордп рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рдЧрддрд┐ рдкрдЯреНрдЯреА рдХреЗ рд╕рд╛рде рдПрдХ рд╕реВрдЪрдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ рдКрдкрд░реА рдмреНрд▓реЙрдХ рдореЗрдВ рд╕реНрдерд┐рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕реВрдЪрдирд╛рдУрдВ рдХреЛ рд╕реНрдкрд╖реНрдЯ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред

рдФрд░ рдЕрдВрдд рдореЗрдВ, рдПрдХ рдЫреЛрдЯреА рд╕реА рдЪрд╛рд▓:

рдпрджрд┐ рдЖрдк рдПрдХ рд╣реА рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рдвреЗрд░ рдкрд░ рджреЛрд╣рд░рд╛рд╡ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ - рддреЛ рд╡рд╛рдВрдЫрд┐рдд рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЛ рдкреНрд░рдХрдЯ рдХрд░реЗрдВ
android:launchMode="singleTop"

Source: https://habr.com/ru/post/In140928/


All Articles