Я хочу «свернуть» приложение, оставив его в фоновом режиме, точно так же, как при нажатии режима ghostbutton, когда пользователь нажимает кнопку (но не заканчивает ее). Как я могу это сделать?
Пока я могу создать Activity
. Я инициализирую своих участников и загружаю WebView
с помощью "https://www.youtube.com".. Я также могу создать Service
, который позволяет мне минимизировать Activity
, но я хочу минимизировать Activity
* что я загрузил WebView
. Проблема Когда Activity
приостановлен, WebView
также приостановлен.
Что я хочу сейчас.
- Режим призрака -> в основном минимизирует эту текущую активность с
наложение системы и отображение уведомлений для элементов управления мультимедиа, которые могут
Воспроизведение / возобновление и выход из режима призрака.
- A
MainActivity
, который виден мне и становится только служением
и покажи мне
Notification
управление после нажатия ghostmode btn
То, что я обработал до сих пор
Ориентация экрана, то есть Activity
не воссоздает WebView
. Если я смотрю какое-то видео, оно просто останавливает видео в ориентации экрана.
Какие ответы я хочу
- Могу ли я сделать свой текущий
Activity
сервисом?
- Если нет, могу ли я просто создать
SplashActivity
, который открывает этот маркер MainActivity
и сделать это Service
по нажатию кнопки.
AndroidManifest.xml
<service android:enabled="true" android:name=".Services.GhostModeService" />
android:hardwareAccelerated="true"
<activity android:name=".MainActivity"
android:configChanges="orientation|screenSize|keyboardHidden"
android:label="@string/app_name"
android:launchMode="singleInstance">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
MainActivity
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Log.d(TAG,"classmain-> onCreate");
initializeM();
settingWebview();
initializeNavigationTab();
myoutube.loadUrl(URL);
ghostModeServiceIntent=new Intent(MainActivity.this,GhostModeService.class);
}
Это мои настройки.
private void settingWebview() {
myoutube.setWebViewClient(new Myyoutube());
myoutube.getSettings().setLoadsImagesAutomatically(true);
myoutube.setScrollBarStyle(View.SCROLLBARS_INSIDE_OVERLAY);
myoutube.getSettings().setBuiltInZoomControls(false);
myoutube.getSettings().setLoadsImagesAutomatically(true);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1)
myoutube.getSettings().setMediaPlaybackRequiresUserGesture(true);
myoutube.getSettings().setJavaScriptEnabled(true);
myoutube.getSettings().setPluginState(WebSettings.PluginState.ON);
}
GhostmodeService
private WindowManager mWindowManager;
private View mGhostmode;
@Override
public void onCreate() {
super.onCreate();
Log.d(TAG,"classghostservice-> onCreate()");
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
mGhostmode = inflater.inflate(R.layout.layout_ghostmode,null,false);
//setting the layout parameters
WindowManager.LayoutParams params = new WindowManager.LayoutParams(
500,
500,
WindowManager.LayoutParams.TYPE_PHONE,
WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE,
PixelFormat.TRANSLUCENT);
params.x=0;
params.y=0;
params.gravity=Gravity.END | Gravity.BOTTOM;
//getting windows services and adding the floating view to it
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mWindowManager.addView(mGhostmode, params);
}
Метод создания моего уведомления. Это уведомление возобновляет MainActivity
.
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Log.d(TAG,"classghostservice-> onstartCommand()");
foregroundNotification(1);
return START_NOT_STICKY;
}