我有一项通过
开始活动的服务 Intent dialogIntent = new Intent(getBaseContext(), dialog.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(dialogIntent);
但是我不确定当这项新活动结束服务时如何传递电话?
请注意" startActivityForResult"不适用于服务。 ;)
另一方面,也许有一些"当焦点回来时#34;听取服务?
谢谢!
编辑:
活动以
结束Intent dialogIntent = new Intent(getBaseContext(), TotalKeyboard.class);
dialogIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
getApplication().startActivity(dialogIntent);
finish();
然而,这在服务中并没有接到电话
@Override public void onStart(Intent intent, int startid)
{
Toast.makeText(getApplicationContext(), "aaa!", Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:2)
当您尝试使用start service
already running
时,onCreate
方法无法接听电话,但是onStart()
方法可以接听电话......你可以使用此属性来满足您的需求...
答案 1 :(得分:2)
foucs
永远不会获得Service
。我不确定您要实现的目标,也许这不是最佳解决方案,但您可以bound
从Activity
到Service
并在Service
中声明一个方法1}}类,然后您可以在Activity
提供服务后,从bound
调用该方法。
编辑:您可以通过创建看起来像对话框的Service
来模拟Activity
的对话节目。您可以在theme
:
AndroidManifest.xml
属性来执行此操作
<activity
android:name="myPackages.ui.DialogActivity"
android:theme="@android:style/Theme.Dialog"
android:launchMode="singleInstance"
android:excludeFromRecents="true"
android:finishOnTaskLaunch="true" />
您可以在method
中声明Service
,然后说:
public void performAction(boolean userChoice){
//implementation
}
在您的DialogActivity
课程中,您可bound
到Service
课程,按下按钮即可致电:
mBoundService.performAction(true);
或
mBoundService.performAction(false);
基于用户选择。
答案 2 :(得分:1)
总之,活动本身必须照顾这一点。