gpt4 book ai didi

Android widget 需要返回两次

转载 作者:行者123 更新时间:2023-11-29 00:45:54 25 4
gpt4 key购买 nike

我制作了一个非常简单的小部件,当按下它时会启动一个 Activity ,但由于某种原因,当我按下时 Activity 关闭并且我看到主屏幕但它完全没有响应,直到我再次按下。我不知道为什么会发生这种情况,我唯一的猜测是,也许这是在 Activity 后面也打开的 widgetprovider 无论如何这是代码我正在使用任何想法为什么我必须按两次以退出我的小部件启动的 Activity 将不胜感激

如果重要的话,小部件也在一个单独的包中

list

<receiver android:name="com.gflam.widget.WidgetProvider" >
<intent-filter>
<action android:name="android.appwidget.action.APPWIDGET_UPDATE" />
</intent-filter>
<meta-data android:name="android.appwidget.provider"
android:resource="@xml/widget" />
</receiver>
<activity android:name="com.gflam.widget.Dialog" android:launchMode="singleInstance" android:noHistory="true" ></activity>

WidgetProvider

public class WidgetProvider extends AppWidgetProvider {

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, com.gflam.widget.Dialog.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0, intent, 0);

RemoteViews views = new RemoteViews(context.getPackageName(), R.layout.widget);
views.setOnClickPendingIntent(R.id.widget, pendingIntent);

appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
}

Activity 启动

public class Dialog extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SharedPreferences settings = getSharedPreferences(PREFS_DEVICE, 0);

final CharSequence[] items = {"1", "2", "3", "4", "5"};
AlertDialog.Builder builder = new AlertDialog.Builder(Dialog.this);
builder.setTitle("What would you like to do?");
builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int item) {
}
});
builder.setPositiveButton("Okay", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
SparseBooleanArray CheCked =((AlertDialog)dialog).getListView().getCheckedItemPositions();
if(CheCked.get(0)){

}
if(CheCked.get(1)){

}
if(CheCked.get(2)){

}
if(CheCked.get(3)){

}
if(CheCked.get(4)){

}
}
}).setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.dismiss();
}
}).show();
}
}

最佳答案

    Dialog dialog = new Dialog(this);
dialog.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
YourActivity.this.finish();
}
});

Override dialog onBackPressed()?

关于Android widget 需要返回两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376345/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com