Android 将小部件放到屏幕上后启动活动
我遇到了一个问题: 我想在将小部件放到屏幕上之后启动ChooseWidgetActivity 我在WidgetProvider中对onUpdate进行了如下编码:Android 将小部件放到屏幕上后启动活动,android,android-appwidget,Android,Android Appwidget,我遇到了一个问题: 我想在将小部件放到屏幕上之后启动ChooseWidgetActivity 我在WidgetProvider中对onUpdate进行了如下编码: @Override public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) { final int N = appWidgetIds.length; for (int i = 0; i &
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
//--- I'm starting activity here:
Intent intent = new Intent(context, WidgetChooseActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(intent);
//---
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_layout_icon);
views.setOnClickPendingIntent(R.id.widgetIcon, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
}
@覆盖
公共void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,int[]AppWidgetId){
final int N=appWidgetIds.length;
对于(int i=0;i
但我唯一得到的是WidgetChooseActivity,它在从widgets屏幕选择widget之后立即启动。我不能将它放在屏幕上,因为我的活动盖过了android主屏幕。
在将小部件放到屏幕上之后,是否可以启动活动?是的,您可以为此使用处理程序
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
try {
// here write down the code
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}, 2000);
是的,您可以为此使用处理程序
Handler handler = new Handler();
handler.postDelayed(new Runnable() {
public void run() {
try {
// here write down the code
} catch (ExecutionException e) {
e.printStackTrace();
}
}
}, 2000);
不久前,我想出了一个解决问题的方法……要在将小部件放到屏幕上之后开始一些活动,在清单中定义它就足够了,例如:
<activity android:name=".MyWidgetConfigurationActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=".MyWidgetConfigurationActivity"
android:initialLayout="@layout/widget_layout"
android:minHeight="80dp"
android:minWidth="80dp"
android:updatePeriodMillis="30000" />
并在AppWidgetProviderInfo元数据中添加android:configure项,例如:
<activity android:name=".MyWidgetConfigurationActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=".MyWidgetConfigurationActivity"
android:initialLayout="@layout/widget_layout"
android:minHeight="80dp"
android:minWidth="80dp"
android:updatePeriodMillis="30000" />
不久前,我想出了一个解决问题的方法……要在将小部件放到屏幕上之后开始一些活动,就可以在清单中定义它,并使用特殊目的过滤器,例如:
<activity android:name=".MyWidgetConfigurationActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=".MyWidgetConfigurationActivity"
android:initialLayout="@layout/widget_layout"
android:minHeight="80dp"
android:minWidth="80dp"
android:updatePeriodMillis="30000" />
并在AppWidgetProviderInfo元数据中添加android:configure项,例如:
<activity android:name=".MyWidgetConfigurationActivity">
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_CONFIGURE"/>
</intent-filter>
</activity>
<?xml version="1.0" encoding="utf-8"?>
<appwidget-provider xmlns:android="http://schemas.android.com/apk/res/android"
android:configure=".MyWidgetConfigurationActivity"
android:initialLayout="@layout/widget_layout"
android:minHeight="80dp"
android:minWidth="80dp"
android:updatePeriodMillis="30000" />
答案正确吗?我想他想延迟显示活动
,直到用户将项目放到屏幕上(比如Gmail小部件)-不要延迟它,因为如果用户持有小部件太长时间,并且活动
不知从哪里冒出来,我们会有奇怪的动作。@jeet这并不能完全解决我的问题,因为用户总是有指定的时间将小部件放在主屏幕上。如果这个时间到了,用户仍然持有小部件-myActivity遮挡主屏幕并放置widget on it变得不可能..答案正确吗?我想他想延迟显示活动
,直到用户将项目放在屏幕上(比如Gmail widget)-不要延迟它,因为如果用户持有小部件太长时间,并且活动
不知从哪里冒出来,我们会有奇怪的动作。@jeet这并不能完全解决我的问题,因为用户总是有指定的时间将小部件放在主屏幕上。如果这个时间到了,用户仍然持有小部件-myActivity遮挡主屏幕并放置widge这件事变得不可能了。。