Pelancar tersuai Android menambah widget tersuai dan tidak boleh mengemas kini antara muka widget
某草草
某草草 2017-05-16 13:29:24
0
1
667

Pelancar tersuai Android menambah widget tersuai, tetapi antara muka widget tidak boleh dikemas kini Widget tersuai boleh dikemas kini pada pelancar sistem seperti jam boleh dikemas kini pada pelancar tersuai.

Kod AppWidgetProvider adalah seperti berikut:

 @Override
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, int[] appWidgetIds) {
        super.onUpdate(context, appWidgetManager, appWidgetIds);
        SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm:ss");
        String dateStr = dateFormat.format(new Date());
        RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget_layout);
        views.setTextViewText(R.id.tv_update, dateStr);
        Log.i("TAG","--"+dateStr);
        appWidgetManager.updateAppWidget(new ComponentName(context, WidgetProvider.class),views);
    }

Kod yang berkaitan dengan pelancar tersuai adalah seperti berikut
Dibuat dalam onCreate,

        //得到com.test包名的所有widegt,并且分配一个appwidgetId,保存起来
        mAppWidgetHost = new AppWidgetHost(MainActivity.this, HOST_ID);
        mAppWidgetHost.startListening();
        mAppWidgetManager = AppWidgetManager.getInstance(MainActivity.this);
        List<AppWidgetProviderInfo> providers = mAppWidgetManager.getInstalledProviders();
        for (int i = 0; i < providers.size(); i++) {
            ComponentName provider = providers.get(i).provider;
            if (provider.getPackageName().contains("com.test")) {
                surfAppWidgetList.add(providers.get(i));
                surfAppWidgetIdList.add(mAppWidgetHost.allocateAppWidgetId());
                LogUtil.printlf("-->" + provider.getPackageName());
            }
        }
        //intent里面可以传入
        mAppWidgetIds=new int[surfAppWidgetIdList.size()];

Kemudian tambahkannya pada reka letak induk dalam gelung

AppWidgetHostView hostView = mAppWidgetHost.createView(this, surfAppWidgetIdList.get(i), surfAppWidgetList.get(i));
            addView(hostView);

Apa masalahnya?

某草草
某草草

membalas semua(1)
漂亮男人

Sudah diselesaikan. Perlu melakukan bindAppWidgetId();
Dan bindAppWidgetId memerlukan kebenaran sistem. Anda mesti menaik taraf aplikasi anda sendiri kepada aplikasi sistem.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan