1초마다 한번씩 업데이트 하는 시간 업데이트 위젯을 만들고 있습니다.
SDK1.5에서 동작하는 코드인데 2.0에서 실행은 되는데 업데이트 동작하지 않고, 아래와 같은 에러로 위젯 app이 이미 죽어 있네요..
이유를 모르겠습니다...
아시는 분 알려주세요..
01-04 05:22:57.378: INFO/installd(32): move /data/dalvik-cache/data@app@vmdl14279.tmp@classes.dex -> /data/dalvik-cache/data@app@com.hdlnc.test.TestWidget20.apk@classes.dex
01-04 05:22:57.388: DEBUG/PackageManager(54): New package installed in /data/app/com.hdlnc.test.TestWidget20.apk
01-04 05:22:57.558: DEBUG/AndroidRuntime(125): Shutting down VM
01-04 05:22:57.558: DEBUG/dalvikvm(125): DestroyJavaVM waiting for non-daemon threads to exit
01-04 05:22:57.568: DEBUG/dalvikvm(125): DestroyJavaVM shutting VM down
01-04 05:22:57.568: DEBUG/dalvikvm(125): HeapWorker thread shutting down
01-04 05:22:57.577: DEBUG/dalvikvm(125): HeapWorker thread has shut down
01-04 05:22:57.577: DEBUG/jdwp(125): JDWP shutting down net...
01-04 05:22:57.577: INFO/jdwp(125): adbd disconnected
01-04 05:22:57.598: DEBUG/dalvikvm(125): VM cleaning up
01-04 05:22:57.618: ERROR/AndroidRuntime(125): ERROR: thread attach failed
=======================================================================================
public class WatchWidget extends AppWidgetProvider {
@Override
public void onUpdate( Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds )
{
RemoteViews remoteViews;
ComponentName watchWidget;
DateFormat format = SimpleDateFormat.getTimeInstance( SimpleDateFormat.MEDIUM, Locale.getDefault() );
remoteViews = new RemoteViews( context.getPackageName(), R.layout.main );
watchWidget = new ComponentName( context, WatchWidget.class );
remoteViews.setTextViewText( R.id.widget_textview, "Time = " + format.format( new Date()));
appWidgetManager.updateAppWidget( watchWidget, remoteViews );
}
}
=============================================================================
file : main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/LinearLayout01"
android:layout_height="200dp"
android:background="@drawable/background"
android:layout_width="160dp"
android:orientation="horizontal">
<TextView
android:id="@+id/widget_textview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:textColor="@android:color/black"
android:textSize="8pt"
/>
</LinearLayout>
==============================================================
file : watch_widget_provider.xml
<?xml version="1.0" encoding="utf-8" ?>
<appwidget-provider
xmlns:android="http://schemas.android.com/apk/res/android"
android:minWidth="146dp"
android:initialLayout="@layout/main"
android:updatePeriodMillis="1000"
android:minHeight="144dp"/>
==================================================================
file : androidmanifest.xml
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.hdlnc.test.TestWidget15"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<receiver android:name=".WatchWidget" android:label="@string/app_name">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data
android:name="android.appwidget.provider"
android:resource="@xml/watch_widget_provider" />
</receiver>
</application>
<uses-sdk android:minSdkVersion="3" />
</manifest>
=====================================================================