Могу ли я зарегистрировать виджет из java-кода вместо манифеста android?

Итак, вот что, у меня есть приложение, если музыка не воспроизводится (для чего я пользуюсь сервисом), и пользователь выходит из активности, тогда я хочу, чтобы служба остановилась, и приложение тоже остановилось, что происходит отлично

Теперь я снова запустил приложение, все работает отлично, за исключением того, что виджет перестает получать широковещательные передачи, даже если эти же широковещательные передачи принимаются другим действием, когда это предполагается.

Также странно, что виджет может отправлять широковещательные передачи (он не может его получить) поэтому кажется, что вещательные устройства снова не регистрируются (только для виджета). Как я могу зарегистрировать его снова? Мне действительно нужно использовать system.exit(), но не используя его, это забивает другие вещи: (

Это то, что я вызываю в ondestroy()

if(ma.boolMusicPlaying1==false)
        {
            getActivity().getApplicationContext().stopService(new Intent(this.getActivity(), Music_service.class));
            ma.NP_List.clear();
            ma = null;
            System.gc();
            System.exit(0);
        }

Так что я предполагаю, что если я смогу зарегистрировать виджет через java файл, моя проблема будет решена. Можно ли зарегистрировать виджет через java файл?

другими словами, что такое код java для

receiver android:name="source.justanothermusicplayer.service.MyWidget" >
        <intent-filter>
            <action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
        </intent-filter>

        <meta-data
            android:name="android.appwidget.provider"
            android:resource="@xml/widget_info" />
         </receiver>