2016-11-07 4 views
-1

Я хочу сервис бежать всегда в фоновом режиме, так что я могу получать уведомления всегда, и после удаления приложения из диспетчера задач по swipping изЗапуск службы после убийства от фона во всех устройствах Android

+1

использование AlarmManager и PendingIntetnt –

+0

Я использовал эти питания, но когда я удалить приложение из фона сервис также получение остановился .. Я использовал возвращение STICKY также .. Не знаю, где я пропускаю некоторые строки. –

ответ

0

MainActivity.java

public class MainActivity extends Activity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     Button but_start = (Button) findViewById(R.id.but_Start); 
     but_start.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View v) { 
       // TODO Auto-generated method stub 
       Intent intent = new Intent(getApplicationContext(), 
         MyService.class); 
       startService(intent); 
      } 
     }); 
    } 
} 

MyService.java

public class MyService extends Service { 
    @Override 
    public void onStart(Intent intent, int startId) { 
     // TODO Auto-generated method stub 
     super.onStart(intent, startId); 
     Toast.makeText(getApplicationContext(), "Service Started in" + 
       " a Different " + 
       "Process", Toast.LENGTH_LONG).show(); 
     //stopSelf();//force service to a stop. 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     // TODO Auto-generated method stub 
     return null; 
    } 
} 

Activity_main.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context=".MainActivity" > 

    <Button 
     android:id="@+id/but_Start" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true" 
     android:text="Start Service" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:layout_marginTop="56dp" 
     android:text= "Start Service in a Different Process" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

</RelativeLayout> 

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?> 
<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.start_service_diff_process" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="17" /> 

    <application 
     android:allowBackup="true" 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name="com.example.start_service_diff_process.MainActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 

     <service 
      android:name=".MyService" 
      android:enabled="true" 
      android:process=":my_process" /> 
    </application> 

</manifest> 
+0

большое спасибо .. попробуйте код –

+0

Я реализовал код, но когда я удалю приложение из диспетчера задач, то его не покажут в лотке «Приложения работает» на моем телефоне Android 5.1. Я оставляю что-то, как я сделал именно то, что вы указали –

0

При удалении приложения из диспетчер задач завершает процесс, и ваша служба работает в этом процессе. Вы должны запускать службу в разных процессах. Вы можете сделать это в файле манифеста

<service 
    . . . 
     android:process="string" > 
</service> 
+0

Можете ли вы привести пример, поскольку я новичок в android. –

+0

. Я уже дал вам пример в файле манифест.xml. service tag –

+0

также проверьте этот учебник об услугах http://www.vogella.com/tutorials/AndroidServices/article.html –

Смежные вопросы