Background Services in Mono for Android: Listing 4

The MusicActivity class.

 [Activity(Label = "Music Player", MainLauncher = true)]
    public class MusicActivity : Activity
    {
        protected override void OnCreate(Bundle bundle)
        {
            base.OnCreate(bundle);

            SetContentView(Resource.Layout.Main);

            var playButton = FindViewById<Button>(Resource.Id.Play);
            var stopButton = FindViewById<Button>(Resource.Id.Stop);

            playButton.Click += delegate
            {
                var intent = new Intent(this, typeof (MusicService));
                intent.PutExtra(MusicService.CommandExtraName, MusicService.PlayCommand);

                StartService(intent);
            };

            stopButton.Click += delegate
            {
                var intent = new Intent(this, typeof(MusicService));
                intent.PutExtra(MusicService.CommandExtraName, MusicService.StopCommand);

                StartService(intent);
            };
        }
    }

About the Author

Greg Shackles, Microsoft MVP, Xamarin MVP, is a Principal Engineer at Olo. He hosts the Gone Mobile podcast, organizes the NYC Mobile .NET Developers Group, and wrote Mobile Development with C# (O'Reilly). Greg is obsessed with heavy metal, baseball, and craft beer (he’s an aspiring home brewer). Contact him at Twitter @gshackles.

comments powered by Disqus

Featured

  • Visual Studio 2026 Gives Copilot Built-In Skills -- and Makes Them Prove Their Worth

    Microsoft is moving Agent Skills beyond bring-your-own instructions by shipping expert-authored workflows with the IDE, while keeping them off by default until testing shows their benefits justify the additional token use.

  • Copilot AI Billing Shock Met with Meters, Caps and Token-Saving Tools

    GitHub is layering spending limits, expanded credit allowances and increasingly granular usage reporting onto Copilot, while Microsoft is reworking Visual Studio and VS Code to expose -- and reduce -- the cost of agentic development.

  • The AI-Powered Software Development Lifecycle

    René van Osnabrugge makes the case that AI's biggest opportunity in software development is not faster coding -- it's reducing the friction everywhere else in the SDLC.

  • Copilot Usage-Based Billing Gets a Token Dashboard

    Microsoft is keeping Visual Studio's new built-in Agent Skills switched off by default while a public dashboard measures whether their performance gains justify the additional tokens they may consume.

Subscribe on YouTube