0

我尝试在android中使用服务

活动 -> 就位登录

public class DashboardActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        userFunctions = new UserFunctions();
        if (userFunctions.isUserLoggedIn(getApplicationContext())) {
            setContentView(R.layout.dashboard);

            startService(new Intent(this, CountDownTimer.class));


        } else {
            // user is not logged in show login screen
            Intent login = new Intent(getApplicationContext(),
                    LoginActivity.class);
            login.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
            startActivity(login);
            // Closing dashboard screen
            finish();
        }

    }
}

服务等级

public class CountDownTimer extends Service {

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

        Toast.makeText(this, "Congrats! MyService Created", Toast.LENGTH_LONG).show();
        Log.d("TAG", "onCreate");
    }

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

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

}

我已经在 android manifest 中添加了这个服务

我不明白代码有什么问题,我尝试了更多教程,但同样的服务没有运行。请帮忙

4

1 回答 1

0

确保您已在 AndroidManifest.xml 中声明您的服务

<service android:enabled="true" android:name=".CountDownTimer" />

随时随地停止服务

 stopService(new Intent(this,CountDownTimer.class));

如果以上填写正确。那么请务必删除Toast

Toast.makeText(this, "Congrats! MyService Created", Toast.LENGTH_LONG).show();

服务无法Toast使用 using向您显示this。因为this包含有关服务的信息。

因此,请尝试Log确认您的服务状态。另外,请确保您的服务尚未运行。
因此stop服务,然后start再一次。

于 2013-06-23T11:08:33.140 回答