Как они это делают? Диалоги на главном экране

Я пишу приложение для Android, и я хотел бы разместить диалог или представление по главному экрану, чтобы пользователь мог вводить текст, не вскакивая в мое полное приложение. Кажется, я не могу заставить это работать. Если я представляю диалог (даже в прозрачной деятельности), мое приложение запускается.

Если вы не знаете, о чем я говорю, взгляните на виджет Facebook. Я хочу воспроизвести подобное поведение, щелкнув «Что у вас на уме?». коробка.

Спасибо за любую помощь заранее!

-Брайан

Solutions Collecting From Web of "Как они это делают? Диалоги на главном экране"

Моя проблема заключалась в том, что приложение всегда запускалось для отображения диалога.

Чтобы решить эту проблему, я установил режим lauch mode в singleInstance в манифесте. Теперь он показывает диалог на главном экране!

Они запускают активность, но они задали тему действия, чтобы она выглядела как диалог.

В вашем манифесте вы должны добавить что-то вроде этого под <activity> : android:theme="@android:style/Theme.Dialog"

Большое спасибо, я пробовал с Theme.Dialog

  <activity android:name=".language" android:label="@string/app_name" android:theme="@android:style/Theme.Dialog"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> 

Но в моем коде есть два разных плавающих окна: мой макет и плитка. Вот следующий код:

 import android.app.Activity; import android.os.Bundle; import android.content.Intent; import android.app.Dialog; public class language extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); // setContentView(R.layout.main); Dialog dialog = new Dialog(this); dialog.setContentView(R.layout.main); dialog.setTitle("Raygional"); dialog.show(); } } 

PS: Я знаю, что это должен быть вопрос, а не ответ

Используйте Службу для этого

 intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); this.getApplicationContext().startActivity(intent); 

Ниже – некоторый код`

 public class HomepopupDataService extends Service { private static final String TAG = "HomepopupDataService"; @Override public void onCreate() { Log.i(TAG, "Service onCreate"); } @Override public int onStartCommand(Intent intent, int flags, int startId) { // TODO Auto-generated method stub Log.i(TAG, "Service onStartCommand"); CountDownTimer dlgCountDown; Log.e("---------------", "onHandleIntent"); dlgCountDown = new CountDownTimer(10000, 1000) { public void onTick(long millisUntilFinished) { Log.e("---------------", "onHandleIntent++"); } public void onFinish() { Intent i = new Intent(getApplicationContext(), DialogActivity.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); getApplicationContext().startActivity(i); } }.start(); return super.onStartCommand(intent, flags, startId); } @Override public IBinder onBind(Intent arg0) { // TODO Auto-generated method stub Log.i(TAG, "Service onBind"); return null; } @Override public void onDestroy() { Log.i(TAG, "Service onDestroy"); } }