I made a very simple widget that when pressed launches an activity but for some reason when i press back the activity closes and i see the home screen but it is completely unresponsive until i press back again. I have no idea why this is happening my only guess is that maybe this is the widgetprovider that is also open behind the activity anyway here's the code i'm using any ideas why i have to press back twice to exit the activity launched by my widget would be greatly appreciated
The widget is also in a separate package if that matters
Manifest
<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 Launched
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();
}
}
Figured it out makes a lot of sense the first back kills the dialog then i needed a second back to kill the activity so i guess i need to rewrite it to extend dialog and what not sorry about the question but did figure out what was wrong eventually