经过大量研究和尝试,解决了!:)
刚刚添加了BroadcastReciever,用于监听包的更改和更新:
在清单文件中注册接收者:
<receiver android:name=".receivers.onRestartReciever"> <intent-filter> <action android:name="android.intent.action.PACKAGE_REPLACED" /> <action android:name="android.intent.action.PACKAGE_RESTARTED" /> <data android:scheme="package" android:path="my.Package.Path" /> </intent-filter>
- PACKAGE_REPLACED-特别是为了通知应用程序更新而调用。
- PACKAGE_RESTARTED-在大多数内存清洁器正在清洁内存时调用。
- “数据”行用于监视应用于特定程序包的操作。
在此接收器中,我再次启动服务,然后重新启动小部件视图(在本例中为onUpdate()方法):
public class onRestartReciever extends BroadcastReceiver {@Overridepublic void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub Log.d("DEBUG", "onRestartReciever"); // Register Services MyWidget_1x1.registerServices(context); MyWidget_2x2.registerServices(context); // reInitialize appWidgets AppWidgetManager appWidgetManager=AppWidgetManager.getInstance(context); MyWidget_1x1 widget1x1=new CallWidgi(); widget1x1.onUpdate (context, AppWidgetManager.getInstance(context), widget1x1.getIDs(context, appWidgetManager)); MyWidget_2x2 widget2x2=new CallWidgi2(); widget2x1.onUpdate(context, AppWidgetManager.getInstance(context), widget2x2.getIDs(context, appWidgetManager)); }}registerServices(Context)是我的AppWidgetProvider类(MyWidget_1x1 /
MyWidget_2x2)中的静态方法,用于注册所需的服务。
希望它也会对您有帮助=]



