2012-02-27 3 views
4

Я создал плагин для фонового сервиса (для запуска приложения в фоновом режиме) в phonegap. Я создал службу для запуска приложения в фоновом режиме с помощью android. Затем запустите службу из plugin.In index.html Я вызываю этот плагин кнопкой щелкните событие. Когда я нажимаю кнопку, служба запускается. Возможно ли использование службы android выполнить javascript в фоновом режиме и получить предупреждение из фона? Как это сделать? Теперь я хочу запустить javascript в background.Is возможно, как получить оповещение в background.также необходимо вызвать службу wcf rest.Как запустить javascript в фоновом режиме?

пожалуйста, направляйте меня.thanks заранее.

Мой код в Index.html

document.addEventListener("deviceready", onDeviceReady, false); 
function onDeviceReady() 
{ 
alert("hello"); 
navigator.notification.alert("hai"); 
} 

после запуска службы Мое приложение запускается в background.I хотите это "предупреждение (" привет ");" "navigator.notification.alert (" хай ") ;» в фоновом режиме. (т. е.), обнаруженное в моем файле .html. Но вы даете код для активности в android.It должен запускать javascript в фоновом режиме и отображать предупреждение от этого.пожалуйста, направьте me.thanks заранее. У меня есть еще одно сомнение в этом служба также запускает мою службу обслуживания wcf в фоновом режиме и предупреждает о диаплете от этой службы. пожалуйста, скажите мне решение Мой код для службы:

public class MyService extends Service { 
    private static final String TAG = "MyService"; 
    MediaPlayer player; 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    @Override 
    public void onCreate() { 
     Toast.makeText(this, "My Service Created", Toast.LENGTH_LONG).show(); 
     Log.d(TAG, "onCreate"); 


     player = MediaPlayer.create(this, R.raw.braincandy); 
     player.setLooping(false); // Set looping 
    } 

    @Override 
    public void onDestroy() { 
     Toast.makeText(this, "My Service Stopped", Toast.LENGTH_LONG).show(); 
     Log.d(TAG, "onDestroy"); 
     player.stop(); 
    } 

    @Override 
    public void onStart(Intent intent, int startid) { 
     Toast.makeText(this, "My Service Started", Toast.LENGTH_LONG).show(); 
     Log.d(TAG, "onStart"); 
     player.start(); 


     Toast.makeText(this, "alert Started", Toast.LENGTH_LONG).show(); 
    } 
} 

В этом коде я должен добавить один player.so после запуска службы .song играет на переднем плане, песня воспроизводится, после нажатия кнопки домой в эмуляторе (фон). Я хочу показать предупреждение как это. Как это сделать?

В моем плагине

if (CALL_SERVICE_ACTION.equals(action)) { 
    Log.d(TAG, "CALL_SERVICE_ACTION"); 

    ctx.startService(new Intent(ctx, MyService.class)); 
    Intent i = new Intent(ctx, AppNotification.class); 
    ctx.startActivity(i); 

} 

меня называют вашу деятельность после запуска службы Это покажет предупреждение только в переднем месте после нажатия кнопки домой в emulator.the оповещения не приходят (от фона), пожалуйста, скажите мне решение

В index.html

function callServiceFunction() { 
window.plugins.BackgroundService.callService('callService', 
     callServiceSuccessCallBack, callServiceFailCallBack); 
    } 
function callServiceSuccessCallBack(e) { 
alert("Success"); 
callNotificationsFunction(); 
} 

function callServiceFailCallBack(f) { 
alert("Failure"); 
} 
function callNotificationsFunction() { 

     window.plugins.BackgroundService.callNotifications('callNotifications', 
callNotificationsSuccessCallBack, callNotificationsFailCallBack); 

} 
function callNotificationsSuccessCallBack(e) { 
alert("Success"); 
} 

function callNotificationsFailCallBack(f) { 
alert("Failure"); 
} 

, пока я нажимаю кнопку кнопки фона, созданную. И он вызывает функцию вызоваNotificationFunction из callervicesuccesscallback.it, отображая предупреждение на переднем плане. После того, как я нажимаю кнопку «домой» в эмуляторе, ничего не происходит, предупреждение не отображается на фоне, пожалуйста, помогите мне заблаговременно. Если я позвоню callNotificationFunction в отдельном нажатии кнопки ничего не происходит (предупреждение не отображается на переднем плане), и нет ошибки в logcat

+0

Когда вы хотите получать уведомления? Когда служба запускается или уведомления являются динамическими? –

+0

Когда я нажимаю кнопку, моя служба запускается. Затем я должен получить предупреждение как на переднем плане, так и на заднем плане (предупреждение в моем index.html), например: alert («hello»), и моя служба обслуживания wcf также запускается в background.please guide меня. Заранее спасибо – Mercy

ответ

0

Для того чтобы показать предупреждение в вашем фоновом режиме. Создайте действие, которое запускается как диалог. Например создать действие, как этот

public class AppNotification extends Activity { 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    AlertDialog alertDialog = new AlertDialog.Builder(AppNotification.this) 
      .create(); 
    alertDialog.setTitle("Alert"); 
    alertDialog.setMessage("Something"); 

    alertDialog.setButton("OK", 
      new DialogInterface.OnClickListener() { 
       public void onClick(DialogInterface dialog, int which) { 
        finish();      
       } 
      }); 
    alertDialog.show(); 
} 

} 

Также в явном использовании файла этого

<activity 
     android:name=".AppNotification" 
     android:theme="@android:style/Theme.Dialog" > 
</activity> 

И позовите эту деятельность когда вы хотите, чтобы показать некоторые уведомления как этого

Intent i = new Intent(context, AppNotification.class); 
context.startActivity(i); 

В Приказ о предоставлении уведомлений используется

navigator.notification.alert("hai"); // For foreground 
window.plugins.BackgroundService.callNotifications('callNotifications', 
callNotificationsSuccessCallBack, callNotificationsFailCallBack); // For Background 

Так же, как вы использовали плагин службы для вызова службы вы используете вызов notifications.And затем выполнить действия, как этот

else if (CALL_NOTIFICATION_ACTION.equals(action)) { 
Log.d(TAG, "CALL_NOTIFICATION_ACTION"); 

Intent i = new Intent(ctx, AppNotification.class); 
context.startActivity(i); 
} 
+0

Спасибо за ваш ответ. Я отредактировал мое сообщение .please посмотри, что .and, пожалуйста, направляйте me.thanks заранее – Mercy

+0

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

+0

У меня есть сомнения в вашем ответе. Используя сервис в android, уже созданный aplugin для запуска приложения в background.so, как вызвать это (AppNotification) активность в этом плагине, я отредактировал мой пост, пожалуйста, посмотрите, что .guide me, спасибо заранее – Mercy

0

Вы можете запустить Javascript в фоновом режиме на Android с помощью службы, WebView и WindowManager , Отметьте этот пост here.

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