Android рдРрдк рдореЗрдВ рд╕реВрдЪрдирд╛рдПрдВ рдЬреЛрдбрд╝рдиреЗ рдХрд╛ рдПрдХ рддреНрд╡рд░рд┐рдд рддрд░реАрдХрд╛



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

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

Skillbox рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢: рдкрд╛рдпрдерди рдбреЗрдЯрд╛ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдПрдкреНрд▓рд╛рдЗрдб рдСрдирд▓рд╛рдЗрди рдХреЛрд░реНрд╕ред

рд╣рдо рдЖрдкрдХреЛ рдпрд╛рдж рджрд┐рд▓рд╛рддреЗ рд╣реИрдВ: "рд╣реИрдмрд░" рдХреЗ рд╕рднреА рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП - "рд╣реИрдмрд░" рдкреНрд░реЛрдореЛ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд┐рд╕реА рднреА рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдХреЛрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкрдВрдЬреАрдХрд░рдг рдХрд░рддреЗ рд╕рдордп 10,000 рд░реВрдмрд▓ рдХреА рдЫреВрдЯред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛рдПрдБ


рдкрд╣рд▓рд╛ рдХрджрдо "рдЕрдзрд┐рд╕реВрдЪрдирд╛" рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдирд╛ рд╣реИред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, NotificationCompat.Builder рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрдордд рдиреНрдпреВрдирддрдо рд╕реВрдЪрдирд╛ рд╕рд╛рдордЧреНрд░реА рдПрдХ рдЫреЛрдЯрд╛ рдЖрдЗрдХрди рд╣реИред рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдирд╣реАрдВ рд╣реИред рдиреАрдЪреЗ рдПрдХ рдорд╛рдирдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХрд╛ рдПрдХ рдЪрд┐рддреНрд░ рд╣реИ рдЬрд┐рд╕реЗ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред



рдПрдХ рдЫреЛрдЯрд╛ рдЖрдЗрдХрди рд▓рдЧрд╛рддрд╛рд░ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдФрд░ рдЗрд╕реЗ рдЕрд▓реНрдлрд╛-рдкрд╛рд░рджрд░реНрд╢реА рдмрдирд╛рдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рдХреЗ рдмрд┐рдирд╛, рдПрдХ рдЖрдЗрдХрди рдХреЗ рдмрдЬрд╛рдп, рдЖрдкрдХреЛ рдПрдХ рд╕рдлреЗрдж рдмреЙрдХреНрд╕ рдорд┐рд▓рддрд╛ рд╣реИред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рд╢реАрд░реНрд╖рдХ рднреА рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╡рд┐рд╡рд░рдг рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЖрдорддреМрд░ рдкрд░ рдЪрд┐рдВрддрд┐рдд рдХреНрдпреЛрдВ рд╣реИред

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдирд┐рдХрд╛рдп рдореЗрдВ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕рд╛рде рдПрдХ рд▓рдВрдмрд╛ рдкрд╛рда рд╣реИред

рдПрдХ рдмрдбрд╝рд╛ рдЖрдЗрдХрди рдХрдВрдкрдиреА рдХрд╛ рд▓реЛрдЧреЛ рдпрд╛ рдХреБрдЫ рдФрд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдиреАрдЪреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд▓рд┐рдП рджреЛ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВред

рдпрд╣ рд╕рдм рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯрд╛ рдХреЛрдб рдЪрд╛рд╣рд┐рдП:

.setSmallIcon(R.drawable.ic_announcement) .setContentTitle(title) .setContentText(body) .build() 

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рджрд┐рдЦрд╛рдПрдВ


рд╣рдордиреЗ рдЕрдкрдиреА рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдмрдирд╛ рд▓реА рд╣реИ, рдЕрдм рдХрд╛рд░реНрдп рдЗрд╕реЗ рджрд┐рдЦрд╛рдирд╛ рд╣реИред Android NotificationManagerCompat рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдРрд╕рд╛ рдХрд░рдирд╛ рд╕рдВрднрд╡ рдмрдирд╛рддрд╛ рд╣реИред рдПрдХ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рд╕реВрдЪрдирд╛ рдФрд░ рд╕реВрдЪрдирд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

 with(NotificationManagerCompat.from(context)) { if (getNotificationChannel(CHANNEL_ID) == null) { createNotificationChannel(context) } notify(notificationId, builder.build()) } 

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдЪреИрдирд▓ рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЛ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред

рдЪреИрдирд▓ рдФрд░ рдорд╣рддреНрд╡


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

 teNotificationChannel(context: Context) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { val name = context.getString(R.string.channel_name) val descriptionText = context.getString(R.string.channel_description) val importance = NotificationManager.IMPORTANCE_HIGH val channel = NotificationChannel(CHANNEL_ID, name, importance).apply { description = descriptionText } NotificationManagerCompat.from(context).createNotificationChannel(channel) } } 

рдЪреИрдирд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЬрд╛рдирдХрд╛рд░реА рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:

  • рдЖрдИрдбреА - рдЪреИрдирд▓ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛;
  • рдирд╛рдо - рдпрд╣ рдЫреЛрдЯрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, "рд╕рдВрджреЗрд╢";
  • рдорд╣рддреНрд╡ - рдпрд╣ рдЙрдЪреНрдЪ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ, рдХрдо рдпрд╛ рдиреНрдпреВрдирддрдо рд╣реЛ рд╕рдХрддрд╛ рд╣реИ;
  • рд╡рд┐рд╡рд░рдг - рдЗрд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдбреЗрд╡рд▓рдкрд░ рдХреЛ рд╡рд┐рд╡рд░рдг рдХреА рдЧреБрдгрд╡рддреНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рд╣рднрд╛рдЧрд┐рддрд╛


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

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

 val builder = NotificationCompat.Builder(context, CHANNEL_ID) ... .setContentIntent(onContentTapped /** Pending intent */) .setDeleteIntent(onSwipedAway /** Pending intent */) .addAction( R.drawable.ic_announcement, actionTitle, onActionTapped /** Pending intent */ ) 

ContentIntent рдХреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд▓реЙрдиреНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдпрд╛рдж рд░рдЦрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рд╕реЗрдЯрдСрдЯреЛрд╕реЗрд▓ (рд╕рдЪреНрдЪреЗ) рдХреЛ рдирд╣реАрдВ рдХрд╣рддреЗ рд╣реИрдВ рддреЛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рдЕрд╕реНрд╡реАрдХрд╛рд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдмрд╛рдж DeleteIntent рд╢реБрд░реВ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред
рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рдирд┐рдЪрд▓реЗ рднрд╛рдЧ рдкрд░ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдмрдЯрди рд╣реИрдВред рдЙрдирдХреЗ рдкрд╛рд╕ рдмреИрдЬ рдФрд░ рдирд╛рдо рднреА рд╣реИрдВред

рдПрдХ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд░реЗрд╡рд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╕реАрд╡рд░ рдХреНрд▓рд╛рд╕ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдСрдирд░рд┐рд╡рд┐рд╡ рдкрджреНрдзрддрд┐ рдХреЛ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░реЗрдВ рдФрд░ AndroidManifest.xml рдореЗрдВ рд░рд┐рд╕реАрд╡рд░ рдШреЛрд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦреЗрдВред

 class NotificationBroadcastReceiver : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { val action = intent.action when (action) { ACTION_ONE -> { Toast.makeText(context, "Action One hit!", Toast.LENGTH_SHORT).show() } ACTION_TWO -> { Toast.makeText(context, "Action Two hit!", Toast.LENGTH_SHORT).show() } } } } object NotificationController { fun pendingIntent(context: Context, name: String, extras: Bundle?): PendingIntent { val intent = Intent(context, NotificationBroadcastReceiver::class.java).apply { action = name putExtra(EXTRA_NOTIFICATION_ID, extras) } return PendingIntent.getBroadcast(context, 0, intent, 0) } } 

рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдХреЗ рд▓рд┐рдП PendingIntents рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП NotificationController рдПрдХ рддреНрд╡рд░рд┐рдд рдЙрдкрдХрд░рдг рд╣реИред рдЕрдзрд┐рд╕реВрдЪрдирд╛ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдирд╛рдо рджреЗрдирд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдмреНрд░реЙрдбрдХрд╛рд╕реНрдЯрд╕реАрд╡рд░ рд╕реЗ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╢реБрд░реВ рдХрд░рдиреЗ рдХрд╛ рдЗрд░рд╛рджрд╛ рд░рдЦрддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ IntentFlag NEW_TASK рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред

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

рдпрд╣ рд╕рдм рд╕рд┐рд░реНрдл рдХрд╛рдо рдХреА рд╢реБрд░реБрдЖрдд рд╣реИред рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдореЗрдВ рдХрдИ рдорд╣рд╛рди рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреНрд░рд╢реНрди рд╣реИрдВ рдпрд╛ рдХреБрдЫ рдФрд░ рдЕрдзрд┐рдХ рдЙрдиреНрдирдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рд╕реНрдХрд┐рд▓рдмреЙрдХреНрд╕ рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ:

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


All Articles