невозможно запустить намерение службы: не найдено

#android

#Android

Вопрос:

Я использовал AlarmManager для вызова действия каждый интервал, однако интервал должен быть изменен. Действие — это просто еще одна функция, которую я изменил на PendingIntent . Вызывающий класс показан ниже, который также является основным классом. Вызываемый класс отображается после вызывающего класса. В конце находится файл манифеста, который может содержать источник ошибки.

   Timer_test:

  package com.timer_test;

  import android.app.Activity;
  import android.app.AlarmManager;
  import android.app.PendingIntent;
  import android.content.Intent;
  import android.os.Bundle;
  import android.os.SystemClock;
  import android.view.View;
  import android.view.View.OnClickListener;
  import android.widget.Button;

 public class Timer_testActivity extends Activity {
  /** Called when the activity is first created. */

   private PendingIntent mAlarmSender;
   int update_freq = 1;
   Intent toast_make;
   int interval;

   @Override
   public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button button1 = (Button)findViewById(R.id.button1);
    Button button3 = (Button)findViewById(R.id.button3);
    Button button5 = (Button)findViewById(R.id.button5);
    Button button10 = (Button)findViewById(R.id.button10);

    toast_make = new Intent("com.timer_test.toast_testClass");
    mAlarmSender = PendingIntent.getService(Timer_testActivity.this, 0, toast_make           ,0);

    button1.setOnClickListener(new OnClickListener(){
        public void onClick(View arg0){
            update_freq = 1;
            timer_schedule();
    }
    });

    button3.setOnClickListener(new OnClickListener(){
        public void onClick(View arg0){
            update_freq = 3;
            timer_schedule();
    }
    });

    button5.setOnClickListener(new OnClickListener(){
        public void onClick(View arg0){
            update_freq = 5;
            timer_schedule();
    }
    });

    button10.setOnClickListener(new OnClickListener(){
        public void onClick(View arg0){
            update_freq = 10;
            timer_schedule();
    }
    });
}

  public void timer_schedule(){

    long firstTime = SystemClock.elapsedRealtime();

    interval = update_freq*1000;
    AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, interval,    mAlarmSender);

}

 package com.timer_test;

 import android.app.Activity;
 import android.os.Bundle;
 import android.widget.Toast;

 public class toast_test extends Activity{

public void onCreate(Bundle icicle){
    super.onCreate(icicle);
    setContentView(R.layout.main);

    onClick("yes");
}

public void onClick(String n) {
    Toast.makeText(toast_test.this,n,
        Toast.LENGTH_SHORT).show();
     }

     }


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

<application android:icon="@drawable/icon" android:label="@string/app_name">
    <activity android:name=".Timer_testActivity"
              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="com.timer_test.toast_test"/>

  </application>
 </manifest>
  

Ответ №1:

toast_test является ли activity и в манифесте вы объявили его как service

Комментарии:

1. верно.. Тем не менее, я последовал примеру, который использует toast_test в качестве PendingIntent и запускает его с помощью getSystemService из AlarmManager.. могу ли я запустить какое-либо действие как намерение и использовать AlarmManager?

2. Я не понимаю, о чем вы спрашиваете, но намерения похожи на сообщения, передаваемые между действиями. Вы можете начать действие, отправив намерение. Вам просто нужно написать фильтр намерений внутри вашего файла манифеста, соответствующего вашей активности.