开发者

Widget starting a service also starts main activity

I have a widget that is supposed to start and stop a service (start it when it's not running, stop it when it is). This is working fine, however, each time the service is started, my app's main activity is also launched, which I don't want. If I remove the MAIN-intent-filter ( <action android:name="android.intent.action.MAIN" />

<category android:name="android.intent.category.LAUNCHER" />) from the app's manifest, it works as I want it to (without launching the main-activity, just the service), but then I obviously don't have a main activity anymore...

This is how I start the service (I would assume this is the normal way, and I can't see any reference to what might cause the MAIN intent to fire):

Intent svc = new Intent(this, OnOffService.class);
startService(sv开发者_Go百科c);

Thanks,

Nick


Your solution is not a good one, for example onPause() occurs when the user changes orientation (rotates the cell phone), so your app is going to just disappear when that happens.

I asked and found the solution: Why does starting an activity from a widget cause my main activity to start as well?


I now 'solved' it by adding a finish(); to my main activity's onPause(). Not a nice solution, but the main activity isn't heavy, so reloading it (rather than getting it back from memory) shouldn't do too much harm. Still weird and I would love to know what I'm doing wrong :)!


Add finish() to the activity after it starts the service.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜