Mam prosty kod aplikacji z klasą MainActivity i w niej przycisk Button. Wciskając go, na przycisku pojawia mi się ilość kliknięć, a przy okazji odpala się MediaPlayer ze streamingiem. Sprawa prosta i banalna.

 
@Override
	public void onClick(View v) {
		counter++;
		przycisk.setText("test " + counter);
		if(v == przycisk){
			mp = new MediaPlayer();	
			try{
				mp.setDataSource("http://jakis_tam_streaming");			
			} catch (IllegalArgumentException e) {
	            e.printStackTrace();
	        } catch (IllegalStateException e) {
	            e.printStackTrace();
	        } catch (IOException e) {
	            e.printStackTrace();
	        }			
			mp.prepareAsync();	       

	        mp.setOnPreparedListener(new android.media.MediaPlayer.OnPreparedListener() {
	            public void onPrepared(MediaPlayer mp) {
	                mp.start();
	            }
	        });     
		}else if(v == przyciskStop){
			 if (mp != null){
			            mp.stop();
			            mp.release();          
			    	mp = null;
		        }
		}		
	}

Chcę teraz zrobić widget, który pozwoli na to samo, tzn. wciskając przycisk na widgecie, po pierwsze zmieni mi napis na przycisku w aplikacji

przycisk.setText("zostałem wciśnięty z widgeta");

po drugie pozwoli mi sterować MediaPlayerem (nie uruchomi nowego, tylko odniesie się do tego już istniejącego).

Czy wystarczy do tego Provider rozszerzający AppWidgetProvider, czy potrzebny jest jakiś Reciever?

Przykłady, które znalazłem albo sterują samym widgetem, albo po prostu od początku mają w sobie zaszytą całą logikę aplikacji, a chodzi mi o to, żeby wszystkiego nie powtarzać, tylko skorzystać z gotowych metod w głównej klasie aplikacji.

Mója klasa Provider ma tylko metodę onUpdate i wygląda tak (średnio wiem co w niej się dzieje i gdzie mógłbym dostać się do buttona, czy mediaPlayera z głównej klasy:

 
 @Override
	   public void onUpdate(Context context, AppWidgetManager appWidgetManager,
	      int[] appWidgetIds) {
	 
		   RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
		   Intent configIntent = new Intent(context, MainActivity.class);
		   
		   PendingIntent configPendingIntent = PendingIntent.getActivity(context, 0, configIntent, 0);
		   
		   remoteViews.setOnClickPendingIntent(R.id.button1, configPendingIntent);
		   appWidgetManager.updateAppWidget(appWidgetIds, remoteViews);
		   
	     
	   }

Dzięki za wszelkie wskazówki.
Pozdrawiam