I use this code to dynamically create an activity from a service:
Manifest:
<activity android:name="ServiceDialog" android:label="" android:theme="@android:style/Theme.Dialog" />
Activity class:
public class ServiceDialog extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Intent intent=getIntent();
String text = "";
if(intent.hasExtra("text")) text = intent.getStringExtra("text");
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Alert");
alert.setIcon(android.R.drawable.ic_dialog_info);
alert.setMessage(text);
alert.setPositiveButton(android.R.string.ok,
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ServiceDialog.this.finish();
}
});
alert.setOnCancelListener(new OnCancelListener() {
@Override
public void onCancel(DialogInterface arg0) {
ServiceDialog.this.finish();
}
});
alert.show();
}
}
Activity creating:
Intent intent = new Intent("android.intent.action.MAIN");
intent.setClass(this, ServiceDialog.class);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
intent.putExtra("text", "Hello!");
startActivity(intent);
But I have a problem - this activity isn't showing in task manager (if I press the "Home" button, then I can't reopen the activity). What can I do to fix it?