Skip to main content

How to easily create background notifications in Sketchware(original)

How to easily create background notifications in Sketchware(original)


One of the keys to building a successful app is to find mechanisms that will keep your users engaged. You can do this by using background notifications. This tutorial will show you how to do that in Sketchware. We will cover:

1. How to create notifications in Sketchware

2. How to show these notifications even when the app is closed.


You might also like: How to set Firebase Rules


We will start by creating a new project. If you do not know how to create a new project please check out this article here. Once we have created our project, let us create a more block to place our code. Navigate to the events menu and then to the moreblock section as shown in the image above.




Create a moreBlock. I have created a moreblock with the name "BackgroundActivity" with a boolean variable named "run." See the image below for how to add the boolean variable.


Place the following block in the moreBlock



Background activity code:

moveTaskToBack(_run);

That will move our task to the background. 

Please note, that at this point we haven't yet added any background task. We just added the moreblock for it

Next, we want to create a notification. We will start by creating a moreblock. We will add two string variables to our moreblock.


In the notifyUser moreblock add the following blocks.


Add the following blocks in the add source directly blocks:

Block 1:

try {

Block 2:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { CharSequence name = "Messages"; String description = "You have new messages"; int importance = NotificationManager.IMPORTANCE_MAX; NotificationChannel channel = new NotificationChannel("id 1", name, importance); channel.setDescription(description); NotificationManager notificationManager = getSystemService(NotificationManager.class); notificationManager.createNotificationChannel(channel); }

Block 3

Intent intent = new Intent(MainActivity.this, MainActivity.class); intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK); PendingIntent pendingIntent = PendingIntent.getActivity(MainActivity.this, 0, intent, 0); androidx.core.app.NotificationCompat.Builder builder = new androidx.core.app.NotificationCompat.Builder(MainActivity.this, "id 1") .setSmallIcon(R.drawable.app_icon) .setSound(RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION)) .setContentTitle(_title) .setContentText(_description) .setPriority(androidx.core.app.NotificationCompat.PRIORITY_MAX) .setContentIntent(pendingIntent) .setAutoCancel(true); androidx.core.app.NotificationManagerCompat notificationManager = androidx.core.app.NotificationManagerCompat.from(MainActivity.this); notificationManager.notify(1, builder.build());

Block 4

} catch (Exception e) {Toast.makeText(this, e.getMessage(), Toast.LENGTH_LONG).show(); }

Now that we have our moreBlocks... we will use a timer to run in the background and when the phone time based on our calendar component is equal to our we now need to place our logic onBackpressed or onStop...

We will need to create 

1. A timer component
2. A calendar component

So our logic will look like this


We can now run our app... then when we click the back button our logic will be triggered. Our notification will look like this:



Variations: Sending message notifications if app is closed

If you're creating a chat app, you can play around with this logic to create a notification whenever there is a new message. The key is in adjusting the timer. This determines the frequency after which your app checks for messages. The logic below shows how to check for messages every 2 hours. It's not perfect but I'm sure you understand. So you can adjust this to suit your own system.... maybe add the user's name or picture. 

 


I hope you found this very helpful. I look forward to reading about your awesome apps someday.


Popular posts from this blog

Hip hop and RnB songs to apologize to your partner

Love is a beautiful thing, but it often goes wrong. This often leads to pain, suffering and sorrow.  Being imperfect beings, hearts tend to get broken all the time regardless how hard we may try to avoid it.  The heartbreak is often inadvertent but at times we find ourselves in the wrong. An oversight, a word unsaid or even a lapse in our judgement can cause our loved ones harm. This doesn't always have to be the end though. Oftentimes, relationships can be mended by simply uttering three simple words: "I AM SORRY". This article is a collection of some of my favourite 'I'm sorry' songs. I hope you'll enjoy these apology songs, but more importantly, I hope you will get a few quotables and some wisdom nuggets from them.  The best apology however, is to change behaviour (got that from a Jay Z interview) so as you apologize, please remember that it was your actions that hurt them. The best apology is one which involves you not repeating those same mistakes aga...

Building game apps in Sketchware

Last week I gave a tutorial on how to create a quiz app using Sketchware. Maybe you want to create a more complex game and that is possible using Sketchware. Today we will be looking at creating more complex games such as an endless runner, car racing or any animated game. You could even create a 3D game but that is of you can create the graphics.      The first step is deciding what kind of game you want to create. This starts with the objective of the game, how the user will earn points, the various levels as well as customizations and upgrades. Once you have the concept you can then start building your app. This tutorial will show you how to create a game app like the one in the video below. Still needs work but I hope you get the idea. What you will need For a simple game app, you will need the following:  1. A sprite sheet These are images of your various characters e.g. it can be a happy face, sad face, angry face and so on. If it's a runner, you can have them...