-1

我从小部件类中触发了一个活动,但活动直接打开而不使用小部件,但我想在我使用小部件时打开活动,但小部件没有显示在那里请帮助我,我从过去两天开始这样做,但没有进展

public class HomeScreen extends AppWidgetProvider {

@
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];

        Intent intent = new Intent(context, MainActivity.class);
        PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        views.setOnClickPendingIntent(R.id.btn_image, pendingIntent);
        appWidgetManager.updateAppWidget(appWidgetId, views);

    }

}

AndroidManifest.xml:

<?xml version="1.0" encoding="utf-8" ?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.app.om" android:versionCode="1" android:versionName="1.0">
    <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" />
    <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme">
        <activity android:name="com.app.om.MainActivity" android:label="@string/app_name">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <receiver android:name=".HomeScreen">
            <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>
    </application>
</manifest>
4

2 回答 2

0

你想要什么

你想点击你的小部件显示活动

发生了什么

活动单独开始

解决方案

像这样在您的小部件提供程序中编写一个属性

机器人:配置=“”

并在此处提供要启动的类包

并从清单中的 MAinActivty 类中删除 ACTION-MAIN 和 CATEGORY-LAUNCHER

结果

现在只剩下小部件,点击即可进入您的活动

希望能帮助到你

于 2013-04-26T11:13:09.553 回答
0

安装提供小部件的软件包不会自动将小部件添加到主屏幕。用户必须将小部件从应用程序菜单中的小部件列表拖到主屏幕的正确位置。

正如@cafebabe1991 所说,如果您不希望主要活动出现在应用程序菜单中,请将其intent-filter从清单中删除。

于 2013-04-26T11:35:41.157 回答